Dir(pathname, attributes)
ファイルやフォルダの存在を確認する関数です。
引数pathnameに指定したファイル名やフォルダがある場合はそのファイル名・フォルダ名を返します。
存在しない場合は""を返します。これを利用して存在の確認が出来ます。
ファイルやフォルダの存在を確認する関数です。
引数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"から下の行にファイル名を羅列します