実行画面
「ファイル探索」ボタンをクリックすると、フォルダ内を探索し見つかれば、フォルダ名と一段下げファイル名を表示するようにしました。次に見つかったファイルが前回と同じフォルダならフォルダ名は表示しません。
コード
下記のVBAコードを追加してください。
'拡張子を取得
Private Function ExGetExt(sfina As String) As String
Dim i As Long
Dim s1 As String
ExGetExt = ""
'ファイル名の最後の文字から「.」を探す
For i = Len(sfina) To 1 Step -1
If Mid(sfina, i, 1) = "." Then
'拡張子を取得
ExGetExt = Mid(sfina, i + 1)
Exit For
End If
Next
End Function
下記のVBAコードに変更してください。
Private Sub ExFolderSearchSub(ByVal tPath As Folder, ByRef lRow As Long, ByVal lCol As Long)
Dim tInPath As Folder
Dim tFile As File
Dim s1 As String
Dim sPush As String
lPathCount = lPathCount + 1
'サブフォルダ内の探索
For Each tInPath In tPath.SubFolders
'再帰呼び出し
Call ExFolderSearchSub(tInPath, lRow, lCol)
Next tInPath
'フォルダ内のファイルを表示
For Each tFile In tPath.Files
s1 = LCase(ExGetExt(tFile.Name))
If s1 = "txt" Or s1 = "html" Or s1 = "htm" Then
If sPush <> tPath.Name Then
lRow = lRow + 1
Cells(lRow, lCol).Value = tPath.Path
sPush = tPath.Name
End If
lRow = lRow + 1
lFileCount = lFileCount + 1
'セル内右寄せ
Cells(lRow, lCol).HorizontalAlignment = xlHAlignRight
Cells(lRow, lCol) = "∟"
Cells(lRow, lCol + 1) = tFile.Name & " (" & tFile.DateLastModified & ")"
End If
Next tFile
Set tPath = Nothing
End Sub