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
を指定すると、編集内容は完全に破棄される- 閉じる前にバックアップや確認処理を入れると安全
- 名前指定のときは拡張子も含める必要がある
コメント