|
分類:[.NET 全般]
vb.netで開発したクラスライブラリをExcelで参照設定する際の名称について
現在vb.net Fremework 4.5.2の環境にてExcel等Officeで参照可能なライブラリとして クラスライブラリの開発を行っています。 質問なのですがOfficeの「参照可能なライブラリ」で表示されている名称と vb.netでのアセンブリ名を分けることは可能でしょうか?
□現状 vb.net側 アセンブリ名 xxxLibrary ルート名前空間 yyyLibrary クラス名 class dllファイル xxxLibrary.dll Excel側 参照可能なライブラリ xxxLibrary vba記載時(1) Dim c AS xxxLibrary.class Set c = new xxxLibrary.class
vba記載時(2) Dim c AS Object Set c = CreateObject("yyyLibrary.class")
□したい事 vb.net側 「何かの設定」 xxx 1.0 Library アセンブリ名 xxxLibrary ルート名前空間 「任意」 クラス名 class dllファイル 「任意」
Excel側 参照可能なライブラリ xxx 1.0 Library vba記載時(1)※下記記載方式のみ Dim c AS xxxLibrary.class Set c = new xxxLibrary.class
vba記載時(2)※変更があっても構わいません。 Dim c AS Object Set c = CreateObject("yyyLibrary.class")
試した事 1.アセンブリ名の変更→アセンブリ名を"xxx 1.0 Library"とした場合 Excel側の参照可能なライブラリでの表示は"xxx_1_0_Library" vba記載時も"Dim c AS xxx_1_0_Library.class"となる
2.レジストリの変更→Excelの参照可能なライブラリで選択されていない場合のみ"xxx 1.0 Library"と表示 選択されている場合"xxxLibrary"とdllファイル上の値と思われる文字列で表示
3.ファイル内文字列を強引に変換→アセンブリ名を"xxx 1.0 Library"で作成後 dll上の文字列を"xxx_1_0_Library"から"xxx 1.0 Library"に書き換え登録。 Excel側の参照可能なライブラリでの表示は"xxx 1.0 Library" ただしvba記載時(1)のとき"Dim c AS [xxx 1.0 Library].class"となる。
上記のようにしたい理由としては不特定多数の方への配布の際バージョンアップしても 1.vbaの記載変更は行わなくてよい 2.Excel側の参照可能なライブラリで確認した際バージョンを簡単にわかるようにしたい。 為です。
ご指導のほどよろしくお願いします。
|