ファイル、フォルダの存在の有無確認 Dir関数



Dir(pathname, attributes)

ファイルやフォルダの存在を確認する関数です。
引数pathnameに指定したファイル名やフォルダがある場合はそのファイル名・フォルダ名を返します。
存在しない場合は""を返します。これを利用して存在の確認が出来ます。
名前 説明 備考
pathname フォルダ名+ファイル名 ない場合は""
attributes ファイルの属性指定 省略すると標準の属性
指定項目



例)C:\にTestFile.xlsがあれば開く
Sub SampleDir()

    'ファイルの有無を確認
    If Dir("C:\TestFile.xls") = "" Then
        
        'ファイルがない場合(ファイル名が返ってきていない場合)
        MsgBox ("C:\TestFile.xlsはありません")
        Else
        
        'ファイルがある場合
        Workbooks.Open "C:\TestFile.xls"
    
    End If

End Sub


指定したpathnameに一致するファイルが複数ある場合は最初のファイルを返します
引数を指定せずに再びDir関数を実行すると次のファイルを返します

例)任意のフォルダにあるファイルをエクセルに書き出す
Sub SampleFoldDir()

    Dim Folder1 As String, FileA As String, LastRow As Long

    'フォルダを任意で選択する
    With Application.FileDialog(msoFileDialogFolderPicker).Show
    Folder1 = .SelectedItems(1)
    End With
    
    '選んだフォルダの拡張子xlsを含むファイルを返す
    FileA = Dir(Folder1 & "\*.xls*")


        'フォルダ内のファイルがなくなるまで繰り返す
        Do While FileA <> ""
        
        '一番上の行を取得
        LastRow = Cells(Rows.Count, 1).End(xlUp).Row
        
        '順にファイル名をセルに入力
        Cells(LastRow + 1, 1) = FileA
        
        'Dirのpathnameの指定をなくす
        FileA = Dir()
        
        Loop

End Sub

アクティブWorksheetのセル"A1"から下の行にファイル名を羅列します

フォルダ選択画面(フォルダを開いてOKクリックでフォルダ指定します)