#要点
・.Save
して.Close
して.Quit
すると、
With ThisWorkbook
.Save
.Close
End With
Application.Quit
##補足
-1. .Close
だけなら当然残る
ThisWorkbook.Close
-2. これは残らない
ThisWorkbook.Close
Application.Quit
-3. これも残らない
ThisWorkbook.Save
Application.Quit
-4. これも残らない
ThisWorkbook.SaveAs "[filename]"
Application.Quit
-5. これは残る
With ThisWorkbook
.SaveAs "[filename]"
.Close
End With
Application.Quit
-6. いずれもMicrosoft Office Professional 2016 Excelバージョン2006での動作。上記の単純なコードのみのプロシージャを標準モジュールに書いてテストした。
-7. 冒頭のケース以外にも空のウィンドウが残ってしまう理由は多岐に亘りそうで、以下の参考サイトでは
「.Close
や.Quit
でトリガーされるWorkBook_BeforeClose
イベントによって発生するループが原因、よって.Close
の前後をApplication.EnableEvents
の= False
と= True
ではさんでこれを回避」
との指摘もある(disableしちゃっていいの?とは思うが、見過ごしそうなチェックポイントではある)。
##参考サイト
vba - How to close blank excel workbook along with Macro workbook? - Stack Overflow
https://stackoverflow.com/questions/24167475/how-to-close-blank-excel-workbook-along-with-macro-workbook