Step3 検索開始ボタンのクリック処理

検索開始ボタンをクリックすると、検索先のフォルダが指定されているかチェックし、OKならばフォルダ内を検索しファイル一覧を表示するようにします。




Homeに戻る > 含む/含まない文字列検索ソフトのメニューに戻る

クリックイベントコード

検索開始ボタンのクリックイベントに下記の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列追加してください。
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列に表示されます。
検索開始ボタンをクリックするとフォルダ名とファイル名が表示される

Homeに戻る > 含む/含まない文字列検索ソフトのメニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved