- ベストアンサー
VBAフォルダ内のブックをすべて開く方法と実行時エラーの解決方法
- VBAを使用して特定のフォルダ内の複数のエクセルブックを一括で開く方法を説明します。
- 上記のVBAマクロを実行する際に、実行時エラー1004が表示される場合、ファイルパスの指定が間違っている可能性があります。
- ファイルパスを正しく指定するためには、フォルダのパスとファイル名を正確に指定する必要があります。
- みんなの回答 (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
その他の回答 (2)
- mt2008
- ベストアンサー率52% (885/1701)
自ブックが「C:\Documents and Settings\tsasaki\デスクトップ\新しいフォルダ」に居ないのでは? buf = Dir("C:\Documents and Settings\tsasaki\デスクトップ\新しいフォルダ\*.xls") ↓ buf = Dir(ThisWorkbook.Path & "\*.xls") こう変更するとどうなります?
お礼
お礼が遅くなりごめんなさい。 自ブックtest.xlsも同じフォルダ内にあります。 変更してみましたがダメでした。
- okormazd
- ベストアンサー率50% (1224/2412)
「\デスクトップ\新しいフォルダ」 を 「\desktop\新しいフォルダー」 にするとか。 それから、質問のコードを実行しても、 『Book1.xlsがみつかりません』 なんて表示しないと思うが。
お礼
okormazdさん 早速お返事いただきありがとうございます。 フォルダ名が「新しいフォルダ」ですので、「新しいフォルダー」にしてもダメでした。
お礼
お礼が遅くなりごめんなさい。 ご回答頂きありがとうございます。 とても勉強になりました。Dir関数はブック名を引いてくるので見つからないのですね。 もっと勉強しなきゃです。ありがとうございました。