質問: C#から既に端末に導入されているCOMアドイン(vsto)を呼び出す方法ってありますか? 自作したCOMアドイン(vsto)が既に端末に導入されています。 C#の処理によって呼び出して実行したいのですが、 何か方法はありますでしょうか? COMアドイン自体はExcel上で、ある形式のシートを作成するなどの処理です。 vstoの実行でC#のアプリから直接渡したい引数などはありません。 >:修正依頼を受けて 情報不足で申し訳ありません。 使用したい状況としては、COMアドインが導入されている端末で そのCOMアドインをC#の外部ツールから呼び出したいというものです。 端末も自端末だけでなく他の端末(COMアドインは導入されている)でも行いたいです。 処理内容としてはフォーマットとなるExcelBookを用意し、 そのBookをC#での処理で編集後COMアドインを呼び出し、 さらに処理をかけるものになります。 COMアドインが導入されていない端末では処理したくないので、 C#上で開いたExcelのインスタンスで COMアドインを呼び出せないかな?と思ったのですが、 参照してモジュール内で処理をするしかないでしょうか?
回答: COM でしたら Activator.CreateInstance で作成できます。ただ、作成したのはそのアプリであって Excel ではありませんから、アドインとしては機能しません。 アドインとして機能させるには、通常はまずそのアドインを組み込むよう Excel の方を設定し、アドインでなく Excel の COM を使ってトリガーを引いてやる必要があります。 しかし自作ですから、アドインとしてでなく、通常のライブラリとして振る舞うよう作ることもできるはずです。 であるならば、Excel を操作するインターフェースを仕込み、ファイル名を渡してやることで任意の Excel ファイルを操作するメソッドを与えるのも一つの方法です。