私はVS2008を使用しています。私のアプリケーションでは、MMCスナップインからExcel 2003ワークシート(Office 2007)を実行して、ユーザーが特定のパラメータを変更できるようにします。複数回閉じるとプロンプトが表示される
コードはBeforeClosingイベント、Window Deactivate、およびWindowActivateにサブスクライブされています。ユーザーがExcelアプリケーションを閉じることを選択した後にのみスムーズに実行され、イエス/ノー/キャンセルファイルを保存するように求められ、シートは決して/常に保存されません。問題は、実際には気をつけて閉じるためにWorkbook.Close()を使用していることです。最初のパラメータは真であればブールですが、毎回、falseには決して保存されず、Type.missingにはもう一度閉じるように促されます。したがって、ユーザーには一度だけプロンプトが表示され(この機能にはキャンセル機能しかありません)、Workbook.Close()によって再度プロンプトが表示されて保存されます(この機能にははい/いいえ機能はありますがキャンセル機能はありません)。キャンセル)。
いいえ私はBeforeSaveイベントを購読しようとしましたが、beforeCloseに入れようとしましたが、起動しません。また、強制保存は解決策ではなく、ワークブックを閉じるのをスキップし、ワークブックの終了を避けるためにExcelを終了させることも解決策ではありません。
私はまた、ブックに関連付けられたcomオブジェクトをリリースするだけで、workbook.closeを回避しようとしましたが、無駄にしませんでした。
ファイルセーブをクリックすると、スプレッドシートを保存するとオフィス2003で機能が使用できなくなることがあるというダイアログボックスが表示されます(この特別なダイアログボックスで問題が発生する可能性があります)。
1つの潜在的な解決策(私が最後の手段として持っているもの)は、閉じたときに保存プロンプトを押さえ、コード(私が制御できるダイアログボックス)から私自身のダイアログボックスを起動し、 (私はこれを避けるために、20以上の言語で翻訳しなければならず、多くの時間がかかります...)
私は非常に感謝しているアイデアがあれば、解決策を失います。
答えを正しいものとしてマークしてください(はい、あなた自身でさえ)。これは、質問が解決されたことをStackOverflowに示します。 – GvS
私は知っている、私はまだそれをマークするために5時間待たなければならない:) – rotSin