📘 Excel逆引き事典

【VBA】特定の名前のシートを開かずに別ブックとして保存する方法

日々の仕事では、特定のシートだけを取り出して別のファイルにする必要がある場面が多々あります。手作業で行うと時間がかかるだけでなく、ミスも増えてしまいます。そこでこの記事では、VBAを使用して簡単に指定したシートを別ブックとして保存する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub SaveSheetAsAnotherWorkbook()
    Dim wb As Workbook, ws As Worksheet
    Dim newWb As Workbook
    
    ' シート名を指定(ここでは「シート1」に設定)
    Set ws = ThisWorkbook.Sheets("シート1")
    
    ' 新しいワークブックを作成
    Set newWb = Workbooks.Add
    
    ' 指定したシートを新しいワークブックにコピー
    ws.Copy Before:=newWb.Sheets(1)
    
    ' 元のワークブックを閉じる(保存せずに)
    newWb.SaveAs ThisWorkbook.Path & "\別ブック名.xlsx"
    newWb.Close SaveChanges:=True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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