Excel 2010 アプリケーション レベルのアドインを開発しています。Workbook インターフェイスに接続された一部の Application イベント、特に NewWorkbook イベントのハンドラーを作成する必要があります。
したがって、ThisAddIn_Startup ハンドラーに次のようなコードを追加しました。
Microsoft.Office.Interop.Excel.AppEvents_Event app = Globals.ThisAddIn.Application;
app.NewWorkbook += MyApp_NewWorkbook;
実行中の Excel インスタンス内で新しいワークブックが作成されると、正常に機能します。しかし、新しい Excel インスタンス (標準的なケースでは、新しいワークブックの作成を意味します) を実行すると、このイベントはハンドラーによってキャッチされません。新しい Excel インスタンスを実行すると、ThisAddIn_Startup イベントの前に NewWorkbook イベントが発生すると思います。
WorkbookOpen イベント アプリケーションの場合、アプリケーションは期待どおりに動作します。実行中の Excel インスタンス内で既存の Workbook を開いたとき、およびファイルをダブルクリックしたときに、イベントがキャッチされます。これらのイベントの処理方法が異なるのはなぜでしょうか?
この場合、どうすればよいですか?Excel が既に実行されているかどうかに関係なく、新しいブックが作成されたか、既存のブックが開かれたかを認識する必要があります。