• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA フォルダ内にあるブックをすべて開く)

VBAフォルダ内のブックをすべて開く方法と実行時エラーの解決方法

このQ&Aのポイント
  • VBAを使用して特定のフォルダ内の複数のエクセルブックを一括で開く方法を説明します。
  • 上記のVBAマクロを実行する際に、実行時エラー1004が表示される場合、ファイルパスの指定が間違っている可能性があります。
  • ファイルパスを正しく指定するためには、フォルダのパスとファイル名を正確に指定する必要があります。

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

  • ベストアンサー
回答No.3

Const DefaultPath = "D:\tmp\tmp\" ここは自分の環境に合わせる。 Option Explicit Sub DirSearch() Const DefaultPath = "D:\tmp\tmp\" Const Selector = "*.xls*" Dim xSheet As Worksheet Dim FilePath As String Dim buf As String, i As Long Application.ScreenUpdating = False Set xSheet = ActiveSheet buf = Dir(DefaultPath & Selector) Do While buf <> "" i = i + 1 'Workbooks.Open Filename:=buf With Workbooks.Open(Filename:=(DefaultPath & buf)) xSheet.Cells(i, "A").Value = buf xSheet.Cells(i, "B").Value = Cells(1, "A").Value Application.CutCopyMode = False .Close False End With buf = Dir() Loop xSheet.Columns("A:B").AutoFit Application.ScreenUpdating = True End Sub

WindsorAvenue
質問者

お礼

お礼が遅くなりごめんなさい。 ご回答頂きありがとうございます。 とても勉強になりました。Dir関数はブック名を引いてくるので見つからないのですね。 もっと勉強しなきゃです。ありがとうございました。

その他の回答 (2)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

自ブックが「C:\Documents and Settings\tsasaki\デスクトップ\新しいフォルダ」に居ないのでは? buf = Dir("C:\Documents and Settings\tsasaki\デスクトップ\新しいフォルダ\*.xls") ↓ buf = Dir(ThisWorkbook.Path & "\*.xls") こう変更するとどうなります?

WindsorAvenue
質問者

お礼

お礼が遅くなりごめんなさい。 自ブックtest.xlsも同じフォルダ内にあります。 変更してみましたがダメでした。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

「\デスクトップ\新しいフォルダ」 を 「\desktop\新しいフォルダー」 にするとか。 それから、質問のコードを実行しても、 『Book1.xlsがみつかりません』 なんて表示しないと思うが。

WindsorAvenue
質問者

お礼

okormazdさん 早速お返事いただきありがとうございます。 フォルダ名が「新しいフォルダ」ですので、「新しいフォルダー」にしてもダメでした。

関連するQ&A