オフィス・ブール ロゴ
【レスキュー連絡先】
代表 : 末永 尚登
TEL: 070-4087-0025 FAX:095-893-6090

【 VBAパーツ 】

13.特定のファイルを検索する

これはファイルと検索フォルダを指定して、その配下のサブフォルダも含めて検索し、その結果を出力する例です。
ファイルが見つかれば、A列に〇が付き、B列にそのファイルまでのパスが表示されます。ファイルが見つからなかったフォルダは 検索したパスのみが表示されます。
指定フォルダ以下のすべてのサブフォルダを調べるため、自分自身(FSerach)を再帰で呼び出しています。

Public Sub Sample()
'検索マクロの呼び出し

    Dim TargetPath As String
    Dim TargetFile As String
    
    
    TargetPath = "C:\Users\XXXX\Documents"
    TargetFile = "Book1.xlsx"
    
    Cells.ClearContents
    Cells(1, 1).Value = "ファイル存在の有無"
    Cells(1, 2).Value = "検索したフォルダ"
    
    Call FSearch(TargetPath, TargetFile)
    
End Sub
Public Sub FSearch(TargetPath As String, TargetFile As String)
'ファイルが見つかった場所をすべて表示

    Dim FSO
    Dim sFolder
    Dim myRow As Long
    Dim buf As String
    
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    For Each sFolder In FSO.GetFolder(TargetPath).SubFolders
        myRow = Cells(Rows.Count, 2).End(xlUp).Row + 1
        buf = Dir(sFolder.Path & "\" & TargetFile)
        If buf <> "" Then
            Cells(myRow, 1).Value = "〇"    '見つかったとき
        End If
        Cells(myRow, 2).Value = sFolder.Path
        Call FSearch(sFolder.Path, TargetFile)  '再帰呼び出し
    Next sFolder
    
End Sub


 


オフィス・ブール ロゴ 所在地:長崎県長崎市  代表:末永尚登
E-mail: suenaga@officeboole.com   TEL: 070-4087-0025  FAX: 095-893-6090