クリックイベントコード
検索開始ボタンのクリックイベントに下記のVBAコードを追加してください。
If Range("B5") = "" Then
Beep
MsgBox "検索フォルダを指定してください。"
Range("B5").Activate
End If
これで検索フォルダが指定されていない場合、検索開始ボタンをクリックすると下のようにブザーが鳴り、メッセージが表示されます。
フォルダ内のファイル名一覧を作成
フォルダ内を検索しファイル名の一覧を表示します。
実行コードは以前「
フォルダ内文字列カウントソフト」で作成したものを使用します。
Private lFileCount As Long
Private Function SelectFolder_FileDialog()
If Application.FileDialog(msoFileDialogFolderPicker).Show Then
SelectFolder_FileDialog = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
Else
SelectFolder_FileDialog = ""
End If
End Function
'フォルダ内ファイル検索
Sub ExFolderSearch(sSearchPath As String, lStartRow As Long, lStartCol As Long)
Dim tFso As FileSystemObject
lFileCount = 0
Set tFso = New FileSystemObject
Call ExFolderSearchSub(tFso.GetFolder(sSearchPath), lStartRow - 1, lStartCol)
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
'サブフォルダ内の探索
For Each tInPath In tPath.SubFolders
Call ExFolderSearchSub(tInPath, lRow, lCol)
Next tInPath
'フォルダ内のファイルを表示
For Each tFile In tPath.Files
If LCase(Right(tFile.Name, 4)) = "html" Or LCase(Right(tFile.Name, 3)) = "htm" Then
lRow = lRow + 1
lFileCount = lFileCount + 1
Cells(lRow, lCol) = tPath.Path & "\"
Cells(lRow, lCol + 1) = tFile.Name
End If
Next tFile
Set tPath = Nothing
End Sub
検索開始ボタンのクリックイベントを下記のVBAコードに変更してください。
If Range("B5") = "" Then
Beep
MsgBox "検索フォルダを指定してください。"
Range("B5").Activate
Else
ExFolderSearch Range("B5"), 2, 8
End If
フォルダ名とファイル名を表示するので、下のように1列追加してください。
一列増えたので、前回のコードを下記に変更してください。
For i = 9 To 13
Cells(2, i + 1) = Cells(i, 2)
Next
For i = 9 To 13
Cells(2, i + 6) = Cells(i, 4)
Next
これで検索開始ボタンをクリックすると、フォルダ名がH列に、ファイル名がI列に表示されます。