【VBA】特定のフォルダ内の全ファイルをエラー処理付きでコピーする方法
日々の業務で大量のファイルを手動で移動するのは大変です。この記事では、特定のフォルダ内の全ファイルを一括でコピーし、エラーが発生した場合でも安全に処理できるVBAマクロを作成します。
サンプルコード
VBA
Option Explicit
Sub CopyFilesWithErrorHandling()
Dim sourceFolder As String, destinationFolder As String
Dim fileSystemObject As Object
Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
' ソースフォルダとデスティネーションフォルダを指定
sourceFolder = "C:\SourceFolder"
destinationFolder = "D:\DestinationFolder"
If Not fileSystemObject.FolderExists(sourceFolder) Then
MsgBox "ソースフォルダが存在しません。", vbExclamation
Exit Sub
End If
' デスティネーションフォルダの作成
If Not fileSystemObject.FolderExists(destinationFolder) Then
fileSystemObject.CreateFolder destinationFolder
End If
On Error GoTo ErrorHandler
Application.ScreenUpdating = False
Dim sourceFile As Object, files As Object
Set files = fileSystemObject.GetFolder(sourceFolder).Files
For Each sourceFile In files
' ファイルをコピーする
fileSystemObject.CopyFile sourceFile.Path, destinationFolder & "\"
Next sourceFile
Application.ScreenUpdating = True
MsgBox "ファイルのコピーが完了しました。", vbInformation
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbCritical
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
ソースフォルダやデスティネーションフォルダのパスが正しいか、ファイル名に問題がないか確認してください。