自動で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 で終了したら確認画面が出ます。


コメント