【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.
フォルダパスや検索パターンが正しいか確認してください。