プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっております。
おしえてくれませんでしょうか

下記のコードを実行すると
エクセルはとじられますが、
バックグラウンドのプロセスのエクセルをが
のこってしまいます。

わかる方おしえてくれませんでしょうか

Private Sub CommandButton3_Click()
Dim Book As Object
Dim ExcelApp As Object

Set ExcelApp = CreateObject("Excel.Application")
Set Book = ExcelApp.Workbooks

Workbooks("Listview_05.xlsm").Close SaveChanges:=True

Book.Close
ExcelApp.Quit

Set ExcelApp = Nothing
End Sub
-----------------------------------

質問者からの補足コメント

  • いつもお世話になっております。
    ワーク開いたとき
    Workbooks("Listview_05.xlsm")は残らないです

    添付ファイルのように黄色い部分が残ります

    「バックグラウンドのプロセスのエクセルを閉」の補足画像1
    No.2の回答に寄せられた補足コメントです。 補足日時:2022/05/12 21:02

A 回答 (4件)

Workbooks("Listview_05.xlsm").Close SaveChanges:=True



自分自身を閉じていますので、以降の命令は実行されません。
自身が消滅しているので、バックグラウンドのエクセルも消滅しています。
残っているのはフォアグラウンドのエクセルの残骸です。
自身を閉じる前に
Application.Quit
を実行すると、エクセル終了が予約され、
自身が閉じた後にエクセルが終了します。
    • good
    • 2
この回答へのお礼

ありがとうございました。
念のため10回ぐらい試しました。
うまくいきました。
とてもありがとうございました。
半年前ぐらいからのもやもやが
吹っ飛びました。
ありがとうございました。

お礼日時:2022/05/12 22:50

自分自身(マクロを実行してるプロセス)を閉じていないのでは?

    • good
    • 0

こんにちは


残らないと思いますが、何処から操作しているのでしょう?
なんか、ちぐはぐになっていますね
Set ExcelApp = CreateObject("Excel.Application")
Set Book = ExcelApp.Workbooks
セットしたオブジェクト
Book.Close
ExcelApp.Quit
以外で使っていません。何故?

複数ブックを操作しているのならエクセルは残るかも知れませんが
Workbooks("Listview_05.xlsm")は残らない

多分困ると思いますが・・・ExcelAppのインスタンスは無視して
Excel自体も終了するのなら、
Private Sub CommandButton3_Click()
Workbooks("Listview_05.xlsm").Close SaveChanges:=True
Application.Quit
End Sub
この回答への補足あり
    • good
    • 0

こんにちは



>バックグラウンドのプロセスのエクセルをが
>のこってしまいます。
実行時エラーで止まらない限りは、のこらないと思います。
(対象ブックが存在していないとかだとエラーが発生します)
 ExcelApp.Visible = True
とでもしておいて、再度、ご確認してみてください。


とは言え、ご提示のコードで全てなら、ExcelAppは何も利用していないので、生成したり削除したりすること自体が無駄です。

Private Sub CommandButton3_Click()
 Workbooks("Listview_05.xlsm").Close SaveChanges:=True
End Sub

と、実質的には変わりないと思いますけれど?
あるいは、省略している部分があるのなら、そちらに原因がある可能性はあります。
    • good
    • 2
この回答へのお礼

ありがとうございました。

お礼日時:2022/05/12 16:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A