質問

C#(Visual Studio 2005)で記述されたMS Office COMアドインがあり、COM Shim dllを使用しています。アドインはVSTOテクノロジーを使用せず、Excel XP以降をサポートします。アドインは、新しいツールバーとメニューを追加します。

Excel 2007ではアドインは正常に機能しますが、「AddIns」という名前の別のタブに表示されます。ツールバーとメニューとともに。このアドインをExcel 2007リボンツールバーと統合し、グループとボタンを含む新しいタブを作成します。

多くの記事を読みましたが、IRibbonExtensibilityはリボンのサポートに使用されるインターフェイスであることがわかりました。また、COM Shim Wizardsには、リボンインターフェイスをサポートする新しいバージョン2.3があります。

それが実行可能かどうか、およびプロジェクトで必要な変更を知りたい。

  1. 現在、OfficeXPのoffice.dllファイルはプロジェクトで使用されています(v 7.0)。ただし、IRibbonExtensibilityインターフェイスはOffice 2007のdll(v12)にあります。だから私が最初にすべきことは、このdllを変更し、コード内のすべての参照を更新することだと思います。このdllは以前のバージョンをサポートしますか(下位互換性あり)?既存の機能を壊したくない。
  2. COM Shim dllの変更は何ですか
役に立ちましたか?

解決

OfficeXPは使用していませんが、2000、2003、2007に対してCOMアドインを構築しました。

最近、IRibbonExtensibilityインターフェイスとv12 PIAへの参照を使用して、Office 2007用のCOMアドインを構築しました。

Office 2003でこれを使用すると、非常にうまく機能することがわかりました。ただし、私のアドインは非常に基本的な機能を提供するだけで、Excelオブジェクトへの多くの呼び出しは使用していません。 OnConnectionメソッドを調整して、Applicaiton.Versionが12未満の場合にのみCommandBarsをセットアップしました。

2003年のPIAから2007年のPIAに切り替えるために必要なコード変更はありませんでした。過去に、最小限の労力でPIAの異なるバージョンを切り替えることができることがわかりました。

ジェームズ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top