餃子を食べるとき、何をつけますか?

Excel2003のVBEの「ツール」メニューの「参照設定」で表示される「参照設定」ダイアログボックスの「参照可能なライブラリファイル」のリストボックスに、VS2010などでVB.NETのクラスライブラリをCOM相互運用機能を登録をオンにしてビルドするとそのソリューション名が自動的に登録されてチェックボックスを伴って表示されると思いますが、いろいろビルドしているうちに、このリストボックスに「ClassLibrary1」が多数表示されてしまっているのですが、今となってはほとんとが不要なので、参照設定を解除して表示されないようにしたいのですが、「参照設定」ダイアログボックス上には「削除」ボタンがありませんが、これらを消すにはどのようにすればよいのでしょうか。

A 回答 (1件)

プログラマって文章能力が高いと思ってたけどなぁ。



---------------------------------------------------
VB.NET 2010 で "COM の相互運用機能に登録" を指定したクラスライブラリを作成しています。
いろいろビルドしているうちに、VBA エディタの参照設定ダイアログに ClassLibrary1 が多数表示されるようになってしまったのですが、これを削除するにはどうしたらよいのでしょうか。
---------------------------------------------------
てな質問でよろしいか。

一般的に COMコンポーネントの登録と解除は Regsvr32.exe を使う。
http://www.bing.com/search?q=regsvr32.exe&qs=n&f …

.NET で作成したライブラリの場合は regasm.exe を使う。
http://www.bing.com/search?q=regasm.exe&qs=n&for …
http://msdn.microsoft.com/ja-jp/library/tzat5yw6 …
http://oshiete.goo.ne.jp/qa/4539797.html

この回答への補足

>一般的に COMコンポーネントの登録と解除は Regsvr32.exe を使う。
>.NET で作成したライブラリの場合は regasm.exe を使う

COM相互運用機能を登録がオンなのでRegsvr32の方と思いますが
確認してみましたが、以下のような結果になり解除できませんでした。
念のため、ExcelのVBAを起動して参照設定を見てみましたが
表示されたままで解除されていません。

Regsvr32 /u ClassLibrary1.dll
を実行すると「ClassLibrary1.dllは読み込まれましたが、DllUnregisterエントリポイントが見つかりませんでした。このファイルが登録されていない可能性があります。」
と表示されます。

念のため
Regsvr32 /u ClassLibrary1.tlb
でも確認してみましたが
「"C:\…\ClassLibrary1.tlb"は実行ファイルではないか、またはこのファイルのヘルプが登録されていない可能性があります。」
と表示されます。

当時のフォルダ・ファイルが削除されていて存在していない場合は
「LoadLibrary("C:\…\ClassLibrary1.dll")に失敗しました-指定されたモジュールは見つかりません。」
と表示なされます。

COM相互運用機能を登録がオンなのでregasmではないと思いますが
Regsvr32で正しくできなかったので、念のためregasmでも確認してみましたが
「型は正常に登録が解除されました」
と表示されますが、ExcelのVBAを起動して参照設定を見てみると
表示されたままで解除されていません。

1つのClassLibrary1.dllだけでなく、
登録したすべてのClassLibrary1.dll
で解除できませんでした。

なぜ解除できないのか原因がよくわかりません。

よろしくお願いします。

補足日時:2012/11/05 10:29
    • good
    • 0
この回答へのお礼

回答を待っていましたが回答がありませんでしたので一旦クローズします。ありがとうございました。

お礼日時:2012/11/22 09:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報