Excelを終了する方法

Excelを終了するときは「Application.Quit」メソッドを呼び出します。

Quitメソッドには引数も戻り値もありません。

以下の関数を実行すると、開いているExcelブックも含めてExcelを終了します。

ただ、この場合、未保存のブックがあると、保存するかどうかのダイアログが表示されます。

5つのブックを開いていて、2つのブックが未保存だった場合は2回ダイアログが表示されます。


未保存のブックを全て保存せずにExcelを終了する方法

Excelを終了する際に、未保存のブックがあっても保存せずに終了したい場合は以下のように書きます。

Application.DisplayAlertsにFalseを設定すると、保存するかどうかのダイアログが表示されません。

そのため、未保存のブックがあっても保存せずにExcelが終了します。Book1のような新規ブックが未保存の場合も保存されません。


未保存のブックを全て保存してExcelを終了する方法

Excelを終了する際に、保存していないブックがある場合に自動的に保存したい場合は以下のように書きます。

保存確認ダイアログは表示されませんが、未保存のブックは保存して閉じられます。

新規ブックのBook1などで未保存のままになっているブックはドキュメントフォルダの直下にBook1.xlsxのように保存されます。

Book1にマクロが記載されていて、それを保存するかどうか、という話はありますが、コードを書いておいて保存せずにApplication.Quitメソッドで強制的にExcelを終了する、ということはまず考えられないため、ここでは紹介しません。

もしそういう用途があるのであれば、「Application.DisplayAlerts = False」の行を削除して保存ダイアログを出すようにした方がよいでしょう。


今動いているExcelとは別のExcelを起動して終了する方法

VBAを実行しているExcelとは別に、VBAの中で別のExcelを起動することが出来ます。その場合の別Excelアプリケーションを終了する場合について説明します。

ここでは別Excelアプリでの新規ブックを作成してA1セルに”abc”と入力して、ドキュメントフォルダにabc.xlsxで保存してから別Excelを終了しています。

変数exが別Excelアプリケーションを指しています。

別Excelは「New Excel.Application」として変数を作成することで別Excelが起動します。

別Excelの変数宣言の部分を「Dim ex As New Excel.Application」ではなくCreateObject関数を使って書く場合は以下のようになります。