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"から下の行にファイル名を羅列します
