- ベストアンサー
【VBA】特定名のブックを全て開く
- デスクトップに任意の数のブックが作成されます。ブックの数だけブックを開くVBAコードを書きたい。
- 特定のブック名のブックを全て開く方法を教えてください。
- 最終連番までのブックを開くVBAコードの書き方を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
全て開くのですか。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
その他の回答 (2)
- kon555
- ベストアンサー率51% (1848/3569)
正当な回答は既についていますので邪道にて。 『For n = 1 To 10』 を 『For n = 1 To 9999』に 『MsgBox "ファイルが存在しません。", vbExclamation』 を 『Exit For』 と変更することで実務的には対応可能です。連番限定ですけど。 もしも連番とは限らないなら、Elseでの動作を特に指定せず延々最後まで処理させるという手もありますね。
- bardfish
- ベストアンサー率28% (5029/17766)
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 ファイル一覧 取得」をキーワードにしてネットを検索すればサンプルコード付きで解説しているページがヒットすると思いますよ。
お礼
有難うございました。 資料ナンバーを指定するよりも効率的でした。 問題となる点をもう一度検討し、別のパターンも研究してみます。