Sub Main()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
'フォルダを選択させる
Dim strPath As String ' 選択したフォルダのパス
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "初期パス"
If .Show = True Then
strPath = .SelectedItems(1)
End If
End With
If strPath = "" Then
MsgBox "フォルダを選択してください"
Exit Sub
End If
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Call RecursiveShori(FSO.GetFolder(strPath))
End Sub
Sub RecursiveShori(Folder)
Dim Subfolder As Object
For Each Subfolder In Folder.SubFolders
Call RecursiveShori(Subfolder)
Next Subfolder
Dim File As Object
For Each File In Folder.Files
'TODO ここに書くファイルに対する処理を記載する
Debug.Print File.Name
Next File
End Sub
【ExcelVBA】選択したフォルダ以下のサブフォルダを含むフォルダ内のファイルそれぞれに対して処理するマクロ