実行画面
サブフォルダ単位で行を変更しファイル名が表示されています。
ファイルの更新日も表示しています。
コード
下記のVBAコードを追加してください。
下記のコードでは再帰呼び出しを使用しています。
再帰呼び出しとは、手続き中で再びその手続き自身を呼び出す事です。
ここでは「ExFolderSearchSub」から再び「ExFolderSearchSub」を呼び出しています。
Option Explicit
Private lFileCount As Long
Private lPathCount As Long
'フォルダ内ファイル検索
Sub ExFolderSearch(sSearchPath As String, lStartRow As Long, lStartCol As Long)
Dim tFso As FileSystemObject
Set tFso = New FileSystemObject
Call ExFolderSearchSub(tFso.GetFolder(sSearchPath), lStartRow - 1, lStartCol - 1)
Set tFso = Nothing
End Sub
Private Sub ExFolderSearchSub(ByVal tPath As Folder, ByRef lRow As Long, ByVal lCol As Long)
Dim tInPath As Folder
Dim tFile As File
lPathCount = lPathCount + 1
lRow = lRow + 1
lCol = lCol + 1
Cells(lRow, lCol).Value = tPath.Name & "/"
'サブフォルダ内の探索
For Each tInPath In tPath.SubFolders
Call ExFolderSearchSub(tInPath, lRow, lCol)
Next tInPath
'フォルダ内のファイルを表示
lCol = lCol + 1
For Each tFile In tPath.Files
lRow = lRow + 1
lFileCount = lFileCount + 1
Cells(lRow, lCol) = tFile.Name & " (" & tFile.DateLastModified & ")"
Next tFile
Set tPath = Nothing
End Sub
Private Sub CommandButton1_Click()
ExFolderSearch "C:\Program Files\Microsoft Office\Office10", 5, 2
End Sub