Excel VBAでファイルを検索する:Dir

Dirは、ファイルやフォルダが存在するかを調べたり、パスのパターンを調べたりする際に有効です。

Dir関数の使い方

Dirは指定したファイルが存在するかどうかを返す関数です。構文は下記のとおりです。

Dir ( [PathName] [, Attributes] )
  • [PathName]:ファイルやフォルダのパスを指定します。他にも、ワイルドカードとして、「*」:任意の長さの文字、「?」:任意の1文字 (0 文字も可)も指定できます。
  • [Attributes]:取得するファイルが持つ属性の値の合計を表す数式または定数を指定します。省略すると、標準ファイルの属性になります。
名前 属性
vbNormal 0 標準ファイル
vbReadOnly 1 読み取り専用ファイル
vbHidden 2 隠しファイル
vbSystem 4 システム ファイル
vbVolume 8 ボリューム ラベル
vbDirectory 16

フォルダ

ファイルが存在するとそのファイル名を文字列で返します。存在しなければ「" "」 が返ってきます。 引数 Attributes には必要に応じてファイルの属性を指定できます。注意として、たとえば「1」の値を指定したときでも、読み取り専用ファイルだけ返したいということはできません。かならず標準ファイルも条件に含まれてしまいます。

使用例

Dドライブに、Sheet1というExcelファイルが存在するかを判定するマクロを示します。

Sub Dir_Sample()
    Dim s As String
 
    s = Dir("D:\Project\vba\Sheet1.xlsx")

    If s = "" Then
        Debug.Print "ファイルは存在しません"
    Else
        Debug.Print "ファイルは存在します"
    End If
End Sub

第2引数(Attributes)を省略したので、標準ファイルを検索します。イミディエイトウィンドウに、実行結果が表示されます。



購読

平日・毎朝更新中