📘 Excel逆引き事典

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

日々の業務で大量のデータ処理に追われているあなた。特に特定のフォルダ内にある複数のExcelファイルを一つのファイルにまとめる作業は、手作業では時間がかかります。しかし、VBAを使えば一瞬で完了します!この記事では、指定したフォルダ内の全てのExcelファイルをコピーする方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub CopyAllFilesInFolder()
    Dim fso As Object, folder As Object, file As Object
    Dim wbTarget As Workbook
    Dim filePath As String
    
    ' フォルダパスの指定
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder("C:\指定フォルダ名")
    
    Application.ScreenUpdating = False
    For Each file In folder.Files
        If LCase(Right(file.Name, 4)) = "xlsx" Then ' Excelファイルのみ対象に
            filePath = file.Path
            Set wbTarget = Workbooks.Open(filePath)
            wbTarget.Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) ' ファイルのシートをコピー
            wbTarget.Close SaveChanges:=False ' 元ファイルは保存せずに閉じる
        End If
    Next file
    
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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