【VBA】保存せずにブックを閉じる

VBAでは、Close メソッドの SaveChanges 引数に False を指定することで、
保存確認をスキップしてそのままブックを閉じることができます。


1. アクティブブックを保存せずに閉じる

Sub CloseWithoutSaving()
    ActiveWorkbook.Close SaveChanges:=False '保存せずに閉じる
End Sub

解説:

  • SaveChanges:=False … 変更を保存せずに閉じる
  • 保存確認ダイアログが表示されず、即座に閉じられる
  • 編集内容はすべて破棄されるため注意

2. 特定のブックを保存せずに閉じる

ブック名を直接指定して閉じることも可能です。

Sub CloseSpecificBookWithoutSaving()
    Workbooks("Sample.xlsx").Close SaveChanges:=False
End Sub

解説:

  • Workbooks("Sample.xlsx") … 名前でブックを指定
  • 名前はウィンドウタイトルに表示されるブック名と一致させる

3. 開いている複数ブックの中から選んで閉じる

ユーザーに入力させて指定したブックを閉じる例です。

Sub CloseByUserInputWithoutSaving()
    Dim bookName As String
    bookName = InputBox("閉じたいブック名を入力してください(拡張子付き)")
    
    If bookName <> "" Then
        On Error Resume Next
        Workbooks(bookName).Close SaveChanges:=False
        If Err.Number <> 0 Then
            MsgBox "指定されたブックが開かれていません。"
        End If
        On Error GoTo 0
    End If
End Sub

解説:

  • InputBox … ブック名を入力させる
  • On Error Resume Next … 指定されたブックが存在しない場合のエラー回避

4. 注意点

  • SaveChanges:=False を指定すると、編集内容は完全に破棄される
  • 閉じる前にバックアップや確認処理を入れると安全
  • 名前指定のときは拡張子も含める必要がある

コメント

タイトルとURLをコピーしました