【VBA】特定のフォルダ内の全ファイルを部分一致で抽出する方法
毎回手作業で特定のフォルダ内の全ファイルから部分一致するファイルを探しているアナタ!このマクロを使えば一瞬で解決です。指定した文字列を含むファイルだけをリストアップします。
サンプルコード
VBA
Option Explicit
Sub ExtractFilesWithPartialMatch()
Dim fso As Object
Dim folder As Object
Dim file As Object
Dim targetFolder As String
Dim partialMatchText As String
Dim filesList() As Variant
Dim i As Long, j As Long
' 検索対象フォルダと部分一致文字列を指定
targetFolder = "C:\Users\YourName\Documents" ' フォルダパスを適切に設定してください
partialMatchText = "example" ' 部分一致する文字列を設定してください
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(targetFolder)
ReDim filesList(1 To 10) As Variant ' 初期配列サイズ(適宜調整可)
j = 1
Application.ScreenUpdating = False
For Each file In folder.Files
If InStr(file.Name, partialMatchText) > 0 Then
ReDim Preserve filesList(1 To j)
filesList(j) = file.Path
j = j + 1
End If
Next file
' ファイルパスをシートに書き出す
With ThisWorkbook.Sheets("Sheet1")
.Cells.ClearContents
For i = LBound(filesList) To UBound(filesList)
.Cells(i + 1, 1).Value = filesList(i)
Next i
End With
Application.ScreenUpdating = True
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。