📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルを完全一致でコピーする方法

日々の業務で大量のファイルを手動でコピーするのは大変です。この記事では、VBAを使用して指定したフォルダ内の特定の名前のファイルのみを自動的にコピーする方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub CopySpecificFiles()
    Dim fso As Object, folder As Object, file As Object
    Dim sourceFolder As String, targetFolder As String
    Dim fileNamePattern As String
    
    ' 源フォルダとターゲットフォルダを指定
    sourceFolder = "C:\SourceFolder"
    targetFolder = "C:\TargetFolder"
    
    ' コピーするファイル名のパターンを指定
    fileNamePattern = "特定のファイル名.txt"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FolderExists(sourceFolder) Then Exit Sub
    If Not fso.FolderExists(targetFolder) Then fso.CreateFolder targetFolder
    
    ' 源フォルダ内のファイルを取得
    Set folder = fso.GetFolder(sourceFolder)
    For Each file In folder.Files
        ' 完全一致でコピーするファイル名を検索
        If file.Name = fileNamePattern Then
            ' ファイルのコピー処理
            file.Copy targetFolder & "\" & file.Name, True
        End If
    Next file
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
フォルダパスやファイル名が正しいか確認してください。