【VBA】特定のフォルダ内の全ファイルをエラー処理付きで転記する方法
日々の業務では、大量のデータを手作業で移動させることは非常に効率が悪いだけでなく、ミスや疲労につながります。この記事では、特定のフォルダ内のすべてのファイルを一括でエラー処理付きで転記するVBAマクロを作成し、業務効率化に役立てましょう。
サンプルコード
VBA
Option Explicit
Sub TransferFiles()
Dim fso As Object, folder As Object, file As Object
Dim wb As Workbook
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' フォルダパスを指定
Const FolderPath As String = "C:\Users\YourName\Documents\Folder"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(FolderPath)
' フォルダ内の全ファイルを取得
For Each file In folder.Files
If LCase(Right(file, 4)) = ".xls" Or LCase(Right(file, 5)) = ".xlsx" Then
Set wb = Workbooks.Open(file)
On Error Resume Next ' エラー処理を開始
ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
wb.Close SaveChanges:=False
On Error GoTo 0 ' エラー処理終了
End If
Next file
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか、ファイル形式が対応しているか確認してください。