Excel VBA フォルダが存在するか確認する方法 Dir関数

スポンサーリンク
スポンサーリンク

フォルダが存在するか確認する方法

やりたい事

VBAでフォルダが存在するかどうかを確認する方法を解説します。
やり方は2通りあってDir関数を使用する方法とFolderExists()を使用する方法があります。
この記事では「Dir関数」について説明します。

Dir関数のサンプルコード

以下のサンプルコードは、マクロのあるブックをカレントディレクトリとしてそのフォルダ内に「work」フォルダが存在するかどうかを確認するコードです。

Dir関数は、第1引数のパスが見つからないときは、「””」を戻り値として返却します。

Sub serchFolderExists()
    
    Dim folderName As String: floderName = "work"
    Dim folderPath As String
    folderPath = ThisWorkbook.Path & "/" & folderPath
    
    If Dir(folderPath, vbDirectory) = "" Then
        MsgBox "フォルダは存在しません。"
    Else
        MsgBox "フォルダは存在します。"
    End If

End Sub

Dir関数構文

Dir [ (pathname, [ attributes ] ) ]
引数 必須/省略可能 説明
pathname 省略可能 ファイル名を指定する文字列式です。ディレクトリまたはフォルダー、およびドライブを含めることができます。pathnameが見つからない場合は、長さ 0 の文字列 (“”) が返されます。
attributes 省略可能 ファイル属性を指定する定数または数式 (合計によって指定) です。 省略した場合は、pathname に一致する、属性のないファイルが返されます。

「attributes」の引数設定

定数 説明
vbNormal 0 (既定値) 属性のないファイル。
vbReadOnly 1 属性のないファイルと読み取り専用のファイル。
vbHidden 2 属性のないファイルと隠しファイル。
vbSystem 4 属性のないファイルとシステムファイル。Macintoshでは使用できません。
vbVolume 8 ボリュームラベル。他の属性を指定した場合は、vbVolumeは無視されます。Macintoshでは使用できません。
vbDirectory 16 属性のないファイルとディレクトリまたはフォルダー。
vbAlias 64 指定されたファイル名はエイリアスです。Macintoshでのみ使用できます。

参考資料

Dir関数

コメント

タイトルとURLをコピーしました