【VBA】特定のフォルダ内の全ファイルを完全一致で取得する方法
日々の業務で大量のファイルを扱う場合、特定の条件に合致するファイルを手動で探すのは時間と労力がかかります。この記事では、Excel VBAを使用して、指定したフォルダ内から完全一致でファイル名を取得し、効率的に業務を行う方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub GetFilesByExactMatch()
Dim fso As Object
Dim folder As Object
Dim file As Object
Dim targetFolder As String
Dim filesList() As Variant
Dim i As Long
' 目的のフォルダパスを指定
targetFolder = "C:\Users\username\Documents"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(targetFolder)
ReDim filesList(1 To folder.Files.Count)
i = 0
For Each file In folder.Files
If file.Name Like "*.txt" Then ' 完全一致の条件を指定(例:特定の拡張子)
i = i + 1
ReDim Preserve filesList(1 To i)
filesList(i) = file.Path
End If
Next file
' 取得したファイルパスをシートに出力する例
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
For i = 1 To UBound(filesList)
ws.Cells(i, 1).Value = filesList(i)
Next i
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。