• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【VBA】特定名のブックを全て開く)

【VBA】特定名のブックを全て開く

このQ&Aのポイント
  • デスクトップに任意の数のブックが作成されます。ブックの数だけブックを開くVBAコードを書きたい。
  • 特定のブック名のブックを全て開く方法を教えてください。
  • 最終連番までのブックを開くVBAコードの書き方を教えてください。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (789/1649)
回答No.2

全て開くのですか。10も開いたらいっぱいになって大変ですが。 Option Explicit ' Sub Macro1()   Dim FileName As String '   ChDrive "C:"   ChDir "C:\Users\fmv\Desktop"   FileName = Dir("資料*.xlsx") '   If FileName = "" Then     MsgBox "ファイルが存在しません。", vbExclamation   End If '   While FileName > ""     Workbooks.Open FileName     FileName = Dir   Wend End Sub

0611birth
質問者

お礼

有難うございました。 資料ナンバーを指定するよりも効率的でした。 問題となる点をもう一度検討し、別のパターンも研究してみます。

その他の回答 (2)

  • kon555
  • ベストアンサー率51% (1848/3569)
回答No.3

 正当な回答は既についていますので邪道にて。 『For n = 1 To 10』 を 『For n = 1 To 9999』に 『MsgBox "ファイルが存在しません。", vbExclamation』 を 『Exit For』 と変更することで実務的には対応可能です。連番限定ですけど。  もしも連番とは限らないなら、Elseでの動作を特に指定せず延々最後まで処理させるという手もありますね。

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.1

Bookを開くコードを書く前に、特定フォルダ内の*.xlsxファイルの一覧を配列に取り込むコードを書けばいいだけじゃ・・・ 最近はvb.netでプログラムをしているのでExcel VBAがものすごく面倒くさく感じるのでできればExcelでプログラムは書きたくないです(笑) vb.netだと特定フォルダ内のファイルを取得するコードは1行で済みます。 https://dobon.net/vb/dotnet/file/getfiles.html こちらのページの「Dim files As String() = System.IO.Directory.GetFiles("C:\test", "*", System.IO.SearchOption.AllDirectories)」という部分です。 あとは、配列の要素数(この場合は見つかったファイル数)を知りたいときは「UBound(files)」で求められます。 「excel vba ファイル一覧 取得」をキーワードにしてネットを検索すればサンプルコード付きで解説しているページがヒットすると思いますよ。

関連するQ&A