SyntaxHighlighter

2012年6月20日水曜日

Access(VBA)からC#で作成したDLLの使用

以前作成した、Googleカレンダーへ予定を登録するDLLをAccessで使用できるかどうかためしてみた。

COMコンポーネントにするために、
1.[アセンブリ情報]の[アセンブリを COM 参照可能にする]にチェック
2.RegAsmとかでレジストリに登録

その後、AccessのVBAで参照設定にDLLが表示されていたので、チェックをつけて実行すると・・・
ダメでした!orz

C#で作ったDLLは使用不可なのかといろいろ調べて、いろいろやってみるが失敗・・・(´・ω・`)ショボーン

あるとき、関数の「static」を削除して試してみるとなんと成功!ヽ(´ー`)ノ
どうやらCOMコンポーネントのときは静的メソッドはサポートされてないとおもわれる。
C#のときは楽に使用するために、全て静的メソッドにしていたことが裏目に出ていたとは・・・┐(´д`)┌

ちなみに、「.」を入力したときに候補リストを表示するためには、インターフェースを作っておく必要があることもわかった。
でも、CreateObject関数で使うとリストでないし、リスト表示なくても使えるから問題ないよね?
もう、ゴールにしてもいいよね?(「・ω・)「がおー

0 件のコメント:

コメントを投稿