「vba フォルダにexcelファイルがあるか判定」
という検索で、このサイト『インストラクターのネタ帳』へアクセスがありました。
VBAで、いずれかのフォルダーにExcelファイルが存在するかどうかを調べるには、どのようなコードを書けばいいのかを探していた方による検索キーワードです。
指定したフォルダーにExcelファイルが存在するかチェックするサンプルマクロ
以下のSubプロシージャを実行すると、「C:\TEMP」にExcelファイルが存在すれば「Excelファイルがあります!」、存在しなければ「Excelファイルはありません。」とメッセージが表示されます。
If Dir("C:\TEMP\*.xls*") = "" Then
MsgBox "Excelファイルはありません。"
Else
MsgBox "Excelファイルがあります!"
End If
End Sub
VBAのDir関数は、引数に指定されたフルパスでファイルを探して、みつかった場合にはファイル名を、みつからなければ空白文字列を返しますから、
If Dir("C:\TEMP\*.xls*") = "" Then
といった判定を行えば
「vba フォルダにexcelファイルがあるか判定」
できます。
Excelファイルが存在するかをチェックしてファイル名を取得するサンプルマクロ
「vba フォルダにexcelファイルがあるか判定」
という検索をなさった方はDir関数をご存知なかったのでしょうから、以下のプロシージャの動きも確認しておくほうが良さそうに感じます。
Dim f_name As String
f_name = Dir("C:\TEMP\*.xls*")
If f_name = "" Then
MsgBox "Excelファイルはありません。"
Else
Do Until f_name = ""
MsgBox f_name
f_name = Dir
Loop
End If
End Sub
「C:\TEMP\」フォルダーに複数のExcelファイルを用意いておいて、上記のマクロを実行すると、Excelファイル名が順番にメッセージボックスに表示されます。
Dir関数は、引数を指定せずに再度呼ばれたときは、同じフォルダーで次のファイルを探します。
そのため、
Do Until f_name = ""
MsgBox f_name
f_name = Dir
Loop
というDo~Loop文で、順番にファイルを探すことができます。
- Newer:CurrentRegionの意味
- Older:オブジェクト変数の型をイミディエイトウィンドウに
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » フォルダーにExcelファイルが存在するか判定する-Dir関数