ここから本文です

VBAについての質問です。下記プログラムでエラーがでています。どのように修正した...

cho********さん

2014/1/1218:09:39

VBAについての質問です。下記プログラムでエラーがでています。どのように修正したらよいかご教示願います。

.Worksheets(xSheet).Activate
でインデックスが有効範囲にありませんとエラーがでています。
1.csv,2.csv,3.csv,4.csvの設定がまずいのでしょうか??
xlsxではなく今回csvのEXCELで実行したいです。


Sub sample()
Dim xBook As Variant
Const xBooks As String = "1.csv,2.csv,3.csv,4.csv" '★
Const xSheet As String = "sheet1"
For Each xBook In Split(xBooks, ",")
With Workbooks(xBook)
.Activate
.Worksheets(xSheet).Activate
タイトル
End With
Next xBook
End Sub

閲覧数:
383
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

sig********さん

2014/1/1219:17:13

というより、シートをアクティブにする必要はないでしょう。
1シートしかないブックをアクティブにすれば、自然とそのブックのシートがアクティブになります。

.Worksheets(xSheet).Activate
のステップを削除するだけで問題が起きそうには思えません。
「タイトル」というプロシジャのコーディングによっては、なにかしないと上手くいかないのかもしれませんけど。

質問した人からのコメント

2014/1/13 11:35:56

感謝 ご回答ありがとうございます。.Worksheets(xSheet).Activateのステップを省略することで無事実行することができました。ありがとうございます!

ベストアンサー以外の回答

1〜1件/1件中

ja7********さん

編集あり2014/1/1220:31:04

> Worksheets(xSheet).Activate
> でインデックスが有効範囲にありません

1.csv ~ 4.csv に sheet1 という名前のシートが、存在しますか?

> どのように修正したらよいか

CSVならシート数が、1つで名前が、sheet1と違うのではありませんか。
まぁ、もし編集過程で複数の場合も考慮し、左端のシートとして・・・

Worksheets(1).Activate
でどうですか?

あとは、正しいシート名を指定することです。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる