📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルを部分一致で配列に格納する方法

日々の業務では、大量のファイルから特定のパターンを持つファイルを見つける必要がある場合があります。この記事では、Excel VBAを使って指定したフォルダ内の全ファイルを部分一致で配列に格納し、効率的に処理を行う方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub GetFilesWithPartialMatch()
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim filePaths() As String
    Dim i As Long
    Dim searchPattern As String
    
    ' 検索パターンを設定
    searchPattern = "*.txt"
    
    ' フォルダパスを指定
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder("C:\Test\")
    
    ' 配列の初期化
    ReDim filePaths(0 To 0)
    i = -1
    
    ' フォルダ内のファイルを検索
    For Each file In folder.Files
        If InStr(file.Name, searchPattern) > 0 Then
            i = i + 1
            ReDim Preserve filePaths(0 To i)
            filePaths(i) = file.Path
        End If
    Next file
    
    ' 結果を表示
    For i = LBound(filePaths) To UBound(filePaths)
        Debug.Print filePaths(i)
    Next i
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
フォルダパスや検索パターンが正しいか確認してください。