Excelを終了する

自動でExcelを起動させた場合、処理が終了したらExcelを終了させておきたいところです。
「Application.Quit」 を呼ぶことで、Excelを終了させることができます。

' ------------------------------------------------------------
' 説明:自動実行する処理
' 引数:1:起動体系  1=自動起動, 2=手動起動
' ------------------------------------------------------------
Sub AutoProc(startup_mode As Integer)
    ' マクロを実行するか判断
    If StartUpTextRead(startup_mode) = False Then
        ' 実行しない
        Exit Sub
    End If

    ' 以降に自動実行の処理を記載します

    ' Excel を終了します
    Application.Quit

End Sub

【注意事項】

この「Application.Quit」 は、Excelを終了させるので、他にもExcelが開いているとそれらも含め全て終了となります。
その際、保存する変更があったりすると処理が停止してしまいます。
必要に応じて、以下の処理も考慮にいれてください。

【例:すべて保存しない】

    ' 保存確認のダイアログを表示しません
    Application.DisplayAlerts = False

    ' Excel を終了します
    Application.Quit

【例:すべて保存する】

    Dim wb As Workbook

    ' 保存確認のダイアログを表示しません
    Application.DisplayAlerts = False

    ' 全てのワークブックを保存します
    For Each wb In Application.Workbooks
        wb.Save
    Next wb

    ' 保存確認のダイアログを表示するように戻します
    Application.DisplayAlerts = True

    ' Excel を終了します
    Application.Quit

【例:未保存のExcelがあれば処理を中断する】

    Dim wb As Workbook

    ' 未保存のファイルが無いか確認
    For Each wb In Application.Workbooks
        If wb.Saved = False Then
            MsgBox "保存されていないExcelファイルがあるため処理を終了します"
            Exit Sub
        End If
    Next wb

    ' Excel を終了します
    Application.Quit

【例:処理が停止しても問題ないので、都度都度確認する】
処理不要です。Application.Quit で終了したら確認画面が出ます。

コメント