成功せずに以下を使用しました。実際、アクティブなブックは閉じますが、Excelウィンドウは開いたままです。
Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False
アプリケーションを終了するコマンドはどれですか?
編集
もう少し言うと:ワークブックのOpenイベントでマクロを実行します。そのマクロが終了したら、アプリケーションを終了します。私もこれを試してみましたが成功しませんでした。
Private Sub Workbook_Open()
Macro_MyJob
Application.Quit
End Sub
このApplication.Quitコマンドはどこに置くべきですか?
あなたの問題は、アプリケーションを終了するコマンドを送信する前にマクロを呼び出すドキュメントを閉じていることだと思います。
その場合の解決策は、ブックを閉じるコマンドを送信しないことです。代わりに、ワークブックの「保存済み」状態をtrueに設定すると、保存されていない本を閉じることに関するメッセージを回避できます。注:これはワークブックを保存しません。保存されているように見えます。
ThisWorkbook.Saved = True
そして、直後
Application.Quit
Save Promptメッセージを回避するには、これらの行を挿入する必要があります
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
作業を保存した後、この行を使用してExcelアプリケーションを終了する必要があります
Application.Quit
正しい条件チェックを行わない限り、単にこれらの行をPrivate Sub Workbook_Open()に配置しないでください。そうしないと、Excelファイルが台無しになる可能性があります。
安全のため、実行するモジュールを作成してください。以下は私が置いたコードです:
Sub testSave()
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End Sub
問題の解決に役立てば幸いです。
Sub TestSave()
Application.Quit
ThisWorkBook.Close SaveChanges = False
End Sub
これは私にとってはうまくいくようですが、保存する前にアプリを終了しているように見えますが、保存されます...
Application.Quit
トリックを行う必要があります。
以下に示すように、動作するように見える特定のシーケンスを試しました。
ThisWorkbook.Saved = True
Application.Quit
Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False
試してみることができます
ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.Quit
私の場合、アプリケーション全体ではなく1つのExcelウィンドウのみを閉じる必要があったため、保存せずに閉じるウィンドウを正確に指定する必要がありました。
次の行は正常に機能します。
Sub test_t()
Windows("yourfilename.xlsx").Activate
ActiveWorkbook.Close SaveChanges:=False
End Sub