2016-06-20 23 views
1

私はxmlリボンを持つアプリケーションレベルのExcel VSTOアドインを持っています。現在、同じExcelインスタンスで複数のワークブックを開くと、同じリボンインスタンスがすべてのワークブックで共有されます。アプリケーションレベルのExcel VSTOアドインで各ブックごとに個別のリボンインスタンスを作成する方法

リボンクラスには、ワークブックごとに値が異なる必要がある特定の変数があるため、これは問題です。そのリボンクラスのインスタンスは1つしか作成されないので、ブックシート上の特定の操作によって変数値がその値を変更されると、他の開いているブックに対しても変更されます。しかし、それは起こるべきではありません。

新しいブックが開かれるたびに、新しいリボンインスタンスを作成できる方法はありますか?

答えて

0

いいえ、Excelアプリケーションの1つのインスタンス内で、リボンのドキュメントまたはウィンドウ固有のインスタンスを作成することはできません。

Workbook.OpenWorkbookActivateなどのイベントを追跡して、別のブックがいつ作業しているのかを判断する必要があります。リボンUIのInvalidateInvalidateControlのメソッドを使用して、必要に応じてコールバックをトリガしてリボンのコントロール状態を変更し、ブックの設定を反映させます。

関連する問題