【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.
フォルダパスやファイル名、シート名などが正しいか確認してください。