📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルを部分一致で取得する方法

手作業で特定のキーワードが含まれるファイルを探すのは時間がかかります。この記事では、VBAを使用して指定したフォルダ内のファイル名に部分一致するファイルのみを一括で取得する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub GetFilesWithPartialMatch()
    Dim fso As Object, folder As Object, file As Object
    Dim searchFolder As String, partialMatch As String
    Dim wb As Workbook, ws As Worksheet
    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Sheet1")
    
    ' 検索フォルダと部分一致文字列を指定
    searchFolder = "C:\Users\username\Documents"  ' フォルダパスを適切に設定してください。
    partialMatch = "example"  ' 部分一致する文字列を入力してください。
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(searchFolder)
    ws.Cells(1, 1).Value = "ファイル名"
    i = 2
    For Each file In folder.Files
        If InStr(file.Name, partialMatch) > 0 Then
            ws.Cells(i, 1).Value = file.Path
            i = i + 1
        End If
    Next file
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。