2010-11-27 16 views
1

私は非常に新しいVisual Studio(ちょうどダウンロードされたバージョン2010 Professional)ですが、これはExcelでWebサービスを行う正しい方法だと思います。Excel 2007からVisual Studio Excelアドインを呼び出す

2つのデフォルトのスタートアップとシャットダウンの手順と、自分で作成した2つの関数、ThisAddInクラスを含むVisual Studio内のTestAPIという名前のExcel 2007アドインを作成しました。たとえばf1とf2です。

Excel 2007を起動してExcelオプションをチェックすると、COMアドインとして表示されますが、これらの2つの機能はVBA内でどのように表示されますか? ThisAddInまたはTestAPIまたはf1またはf2への参照はすべて失敗しますが、StartUp関数に何かを入れるとExcelを起動するたびに自動的に実行されますが、これはかなり面倒です。 COMアドインは、Excelのレベルでオン/オフに切り替わるようですが、私はどこのTestAPIを参照していても参照することができます(Excelシートによって必要に応じてチェックしたり、チェックを外すことができます)。

おそらく(または複数の)ポイントがありません。

答えて

2

Paul Stubbsには、VBAのVSTO UDFをhis blogに呼び出すための情報があります。

Eric Carterで説明されているように、Excel用のバニラCOMアドインを作成することもできます。

ユーザー定義関数を作成する私の個人的な好みはExcelDnaです。

+0

おかげで、(キービットだった以上のことから、いくつかの進歩を遂げたのThisAddIn ComVisibleを追加しています)、関数を使用することができます。まだユーザー定義型(クラスまたは構造体)を公開する方法はわかりません。すべてが実行時にオブジェクトを介して行われるように見えるので、関数stuffをミラーリングしようとするとvbaでコンパイルされません。 – Rob

+0

上記は非常に便利なリンクです。私は自分の目的のために、クラスライブラリdllを作成し、必要に応じて参照として追加するほうがよいことがわかりました。 – Rob

0

F1とF2 Publicを宣言しましたか?クラスでは

Public Shared Function F1(x as Object) as Object 
    Return x*2 
End Function 

(私は共有がVSTOで必要とされるかどうかわからないんだけど、私はアドインExpressを使用して、VSTOは、このような痛みです)

+0

すでにpublicとして宣言されていました。 ComVisibleが正しく設定されていれば、共有は必要ないようです。 – Rob

関連する問題