Vba: フォルダー内のファイルを一覧表示する方法
VBA で次のメソッドを使用して、フォルダー内のファイルを一覧表示できます。
方法 1: フォルダー内のすべてのファイルを一覧表示する
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
Cells(i + 1, 1) = objFile.Name
i = i + 1
Next objFile
End Sub
方法 2: フォルダー内の .xlsx ファイルのみを一覧表示する
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then
Cells(i + 1, 1) = objFile.Name
i = i + 1
End If
Next objFile
End Sub
次の例は、次のファイル パスを持つフォルダーで各メソッドを実際に使用する方法を示しています。
- C:\ユーザー\ボブ\ドキュメント\current_data
このフォルダーには、2 つの.xlsxファイルと 3 つの.csvファイルが含まれています。
例 1: フォルダー内のすべてのファイルを一覧表示する
次のマクロを作成して、フォルダー内のすべてのファイルを一覧表示できます。
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
Cells(i + 1, 1) = objFile.Name
i = i + 1
Next objFile
End Sub
このマクロを実行すると、次の出力が表示されます。
フォルダー内のすべてのファイルの名前 (拡張子に関係なく) が Excel シートの列 A にリストされていることがわかります。
例 2: フォルダー内の .xlsx ファイルのみを一覧表示する
次のマクロを作成して、フォルダー内の.xlsx拡張子を持つファイルのみを一覧表示できます。
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then
Cells(i + 1, 1) = objFile.Name
i = i + 1
End If
Next objFile
End Sub
このマクロを実行すると、次の出力が表示されます。
フォルダー内の拡張子が.xlsxのファイル名のみが Excel シートの列 A にリストされていることがわかります。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA を使用してフォルダーを作成する方法
VBAを使ってフォルダを削除する方法
VBAを使用してファイル名を変更する方法
VBAを使用してファイルが存在するかどうかを確認する方法