【VBA】特定の名前のシートをエラー処理付きでコピーする方法
日々の業務で大量のデータを扱う際、同じ内容を何度も手作業で行うのは効率的ではありません。この記事では、特定の名前のシートをエラー処理付きで簡単にコピーする方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub CopySheetWithErrorHandling()
Dim ws As Worksheet, targetWsName As String
Dim newWs As Worksheet
' ターゲットのシート名を指定
targetWsName = "コピーしたいシート"
On Error GoTo ErrorHandler
Set ws = ThisWorkbook.Sheets(targetWsName)
Application.ScreenUpdating = False
' 新しいシートを作成し、元のシートをコピーする
ws.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Set newWs = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
newWs.Name = targetWsName & "_Copy"
Application.ScreenUpdating = True
MsgBox "シートのコピーが完了しました。", vbInformation
Exit Sub
ErrorHandler:
If Err.Number <> 0 Then
MsgBox "エラー: " & Err.Description, vbCritical
Application.DisplayAlerts = False
On Error Resume Next
Set ws = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Exit Sub
End If
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。それでも問題がある場合は、具体的なエラーメッセージに基づいて対処方法を探しましょう。