Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » フォルダーにExcelファイルが存在するか判定する-Dir関数

フォルダーにExcelファイルが存在するか判定する-Dir関数

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「vba フォルダにexcelファイルがあるか判定」
という検索で、このサイト『インストラクターのネタ帳』へアクセスがありました。

VBAで、いずれかのフォルダーにExcelファイルが存在するかどうかを調べるには、どのようなコードを書けばいいのかを探していた方による検索キーワードです。

[スポンサードリンク]

指定したフォルダーにExcelファイルが存在するかチェックするサンプルマクロ

以下のSubプロシージャを実行すると、「C:\TEMP」にExcelファイルが存在すれば「Excelファイルがあります!」、存在しなければ「Excelファイルはありません。」とメッセージが表示されます。

Sub 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関数をご存知なかったのでしょうから、以下のプロシージャの動きも確認しておくほうが良さそうに感じます。

Sub Excelファイルが存在するかチェックしてファイル名を取得する()
 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文で、順番にファイルを探すことができます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » フォルダーにExcelファイルが存在するか判定する-Dir関数

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.