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