• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル マクロ ループ ファイル展開)

エクセルマクロでファイル展開をする際のループ処理について

このQ&Aのポイント
  • エクセルマクロでファイル展開をする際に、ループ処理を行いたい場合の方法を教えてください。
  • 現在、エクセルファイルのD1セルから下にファイル名を入れていき、その名前のファイルを開きつつ、シートを26-4に選択していくループ処理を行いたいと考えています。しかし、2週目からエラーが発生してしまいます。このエラーの原因と対策方法について教えてください。
  • エクセル2010を使用しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

複数のオブジェクト(ブックやシート)をまたいで処理する場合は 変数の宣言や、選択や取得する対象を省略せず指示しましょう。 Sub test() Dim i As Long '無かったので追加 Dim tar As Object 'オブジェクト変数を用意 i = 1 '行番号の初期値の設定 With ThisWorkbook.ActiveSheet 'with~end withでファイル一覧のシートを基準に指定 Do Until .Range("D" & i) = "" 'ループ処理開始 Set tar = Workbooks.Open(Filename:=.Range("D" & i)) '開いたブックをtar変数に格納 tar.Sheets("26-4").Select 'tarの対象シートを選択 i = i + 1 '行番号を1つ増やす Loop End With End Sub

jimuinnD
質問者

お礼

回答ありがとうございます。 ですが、2列目指定したファイルは開くのですが、 26-4 シートを選ぶところでエラーになってしまいます。 シート名の再確認したのですが、シート名は間違っておりませんでした。(半全角、空白も確認済み)

その他の回答 (1)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

エラー内容をご提示願います。

jimuinnD
質問者

お礼

すいません。 ブック側が悪かったのか、各開くブックをA1セルに合わせて保存したあとに実行したらできました。 ありがとうございました。

関連するQ&A