VB2005でつくったCOMをExcel2000VBAで使いたい。

タグの編集
投稿者 えくせらー  (社会人) 投稿日時 2010/3/4 05:48:22
いつも参考にさせていただいています。業務で使うアプリを作成する際や後輩に
プログラミングを教える際、とてもわかりやすくまとめてあり感謝です。

さて、VB.NET/2005/2008のテクニック目次→COMオブジェクトとの連携のページ
について質問があります。当方の環境はWindowsXP SP2, VS2005Professional(SPなし),
 VB6SP5, Excel2000SR-1です。

「3.VB6から.NETのアセンブリを呼び出す」に習ってVB2005でCOMクラスを使った
クラスライブラリをビルドして、VB6から呼び出した場合問題なく動きました。

同様にExcel2000のVBEditorにて参照設定からVB6でうまくいったCOMを追加して、
これを利用するコードを書いて実行すると、「実行時エラー'2147024894(80070002)' 
ファイルまたはアセンブリ名 COMTest1、またはその依存関係の1つが見つかりません
でした。」というエラーがでてしまいます。

ExcelVBAから使うためには、なにか特別な操作が必要なのでしょうか?
ご存知でしたら教えていただけるとありがたいです。よろしくお願いします。

投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/3/4 06:28:05
Access や VB6 であれば、比較的スムーズに進むのですけれどね…。

> ExcelVBAから使うためには、なにか特別な操作が必要なのでしょうか?
Excel や Word から利用する場合には、いろいろとややこしい話があったりします。
http://connect.microsoft.com/VisualStudio/feedback/details/96989/cannot-use-com-objects-created-with-net-framework-2-0-from-excel
http://rucio.groupsite.jp/commu/ThreadDetail.aspx?ThreadId=9141
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/8e33f7c0-86b5-4449-8259-aee7f010fc7b
http://msdn.microsoft.com/ja-jp/library/cc375809.aspx
投稿者 えくせらー  (社会人) 投稿日時 2010/3/5 09:38:13
魔界の仮面弁士さん、早速の返信ありがとうございます。

過去ログをみたつもりでしたが・・・既出の質問に丁寧に返信頂きありがとう
ございます(汗) バグなのか故意なのかよくわかりませんが・・
そのままで動かないとなると、なかなか初心者にはお勧めできる内容
ではなさそうですね。

Excelから自作プログラムをコントロールできると何かと便利なことが
できそうだし、初心者の目をひいてプログラミングの裾野をひろげるのに
一役買えそうな内容だけに残念です。

教えていただいた、下記リンクの記事
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/8e33f7c0-86b5-4449-8259-aee7f010fc7b

の中にあった、nielsvanvliet氏のMonday, March 19, 2007 6:18 PMの
記事に「Excel Add-ins and COM」へのリンクがありました。
http://nielsvanvliet.com/excel.html#Patch

その中の「Add-In: Apply the Fix (Patch) 908002」の項で
http://support.microsoft.com/kb/908002
のリンクがあり、ここからパッチをダウンロードしてあてたところ
Excel2000VBAから利用できるようになりました!ご参考になれば。

これで全てが解決しているのかどうかはクエスチョンですけど
また何か分かったら書き込みたいと思います。

ありがとうございました。

# http://rucio.groupsite.jp/commu/ThreadDetail.aspx?ThreadId=9141
# 中の・・ regasm /uだと確かに参照設定の一覧からは消えてくれないですね。
# ・・もなかなか初心者には厳しい話ですねえ・・