VBA でエクセルのブックを閉じるには、ThisWorkbook.Close メソッドを使用します。また、Excel 自体を終了させるには Application.Quit メソッドを使用します。ここでは、これらの挙動の違いを掲載しています。
スポンサーリンク
挙動の違い
メソッド | 動作 |
---|---|
ThisWorkbook.Close | メソッドコールで即時にブックをクローズし、その後に記述されているコードは実行されない |
Application.Quit | 一連のスクリプト実行後にアプリケーション(エクセル) を終了させる |
挙動を確認するサンプルスクリプト
ThisWorkbook.Close と Application.Quit の挙動の違いを確認するサンプルスクリプトになります。詳細はコメントを参照ください。
' ブックをクローズしてからExcelを終了する Private Sub BookCloseAndApplicationQuit() ' ブックが変更されている場合は強制的に保存する '用途に合わせて使用する If (ThisWorkbook.Saved = False) Then ThisWorkbook.Save End If ' ブックを終了する ThisWorkbook.Close '----------------------------------------------------- ' ☆このメッセージは出力されない ' ☆ブックが終了し、スクリプトも以降実行されなくなる '----------------------------------------------------- MsgBox "ブック終了" If (Workbooks.Count = 1) Then ' 開いているブックが自身のみの場合はExcelを終了させる Application.Quit End If End Sub ' Excelの終了予約をしてからブックをクローズする Private Sub ApplicationQuitAndBookClose() If (Workbooks.Count = 1) Then ' 開いているブックが自身のみの場合はExcelを終了させる Application.Quit End If '----------------------------------------------------- ' ☆ このメッセージは出力される ' ☆ 一連のスクリプトの実行完了を待ってExcelは終了する '----------------------------------------------------- MsgBox "Excel終了予約" ' ブックを終了する ThisWorkbook.Close End Sub