📘 Excel逆引き事典

【VBA】特定の名前のシートをエラー処理付きで別ブックとして保存する方法

手作業で特定のシートだけを新しいブックに移動するのは時間がかかります。この記事では、VBAを使って簡単にそれを解決し、エラー処理も加えて信頼性を高めましょう。

サンプルコード

VBA
Option Explicit
Sub SaveSheetAsNewWorkbook()
    Dim wb As Workbook, ws As Worksheet, newWb As Workbook
    On Error GoTo ErrorHandler
    Set ws = ThisWorkbook.Sheets("特定のシート名")
    If ws Is Nothing Then
        MsgBox "指定されたシートが見つかりません。", vbExclamation
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set newWb = Workbooks.Add(xlWBATWorksheet)
    ws.Copy Before:=newWb.Sheets(1)
    newWb.SaveAs ThisWorkbook.Path & "\特定のシート名.xlsx"
    MsgBox "新しいブックが作成されました。", vbInformation
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Exit Sub
ErrorHandler:
    MsgBox Err.Description, vbCritical
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。