none
.NETでDLL作成。COMとして運用。 RRS feed

  • 質問

  •  .NETでDLLを作成して、それをタイプライブラリに変換してVBAでCOMとして呼び出してFormを表示しようと思っています。

    ①Visual Studio 2003でDLLを作成してRegasm.exeでタイプライブラリ(.tlb)に変換。
    ②Excel VBAにて参照設定でタイプライブラリを参照。
    Framework 1.1を入れています。

    上記の方法でやっているのですが、Excel2003の場合ではそれでいくのですが、
    Excel2000ではオートメーションエラーとなり動きません。
    どちらもWindowsXPです。
    Excelのバージョンによるものだと思うのですが、
    何かいい方法はありませんか?

    初めての投稿です。
    文章が読みにくいとは思いますが、宜しくお願い致します。

    2009年2月26日 7:43

回答

  • Office 2003では、.NET Framework 1.1のCLRを読み込むように固定するポリシーが設定されています。(更新プログラムにて適用される)
    http://support.microsoft.com/?scid=kb%3Ben-us%3B948461&x=10&y=7

    しかし、そういったポリシーの設定がないバージョンのOfficeや、その他のネイティブアプリケーションでは、既定で.NET Framework 2.0のCLRを読み込むため、.NET Framework 1.1で作られたCOMは正常に動作しない可能性があります。


    1.1のCLRと2.0のCLRが同時に読み込むことができないこと、1.1と2.0の間で非互換の要素があることから、こういった問題を生んでいます。
    全てのユーザの環境でうまくいくような解決策はないと思われるので、戦略の見直しも考えた方が良いかもしれません。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    • 回答としてマーク sk7474 2009年3月12日 10:12
    2009年2月26日 14:20
    モデレータ

すべての返信

  • Office 2003では、.NET Framework 1.1のCLRを読み込むように固定するポリシーが設定されています。(更新プログラムにて適用される)
    http://support.microsoft.com/?scid=kb%3Ben-us%3B948461&x=10&y=7

    しかし、そういったポリシーの設定がないバージョンのOfficeや、その他のネイティブアプリケーションでは、既定で.NET Framework 2.0のCLRを読み込むため、.NET Framework 1.1で作られたCOMは正常に動作しない可能性があります。


    1.1のCLRと2.0のCLRが同時に読み込むことができないこと、1.1と2.0の間で非互換の要素があることから、こういった問題を生んでいます。
    全てのユーザの環境でうまくいくような解決策はないと思われるので、戦略の見直しも考えた方が良いかもしれません。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    • 回答としてマーク sk7474 2009年3月12日 10:12
    2009年2月26日 14:20
    モデレータ
  • Azulean様

    解答、ありがとうございます。

    やはりそうですよね。゚(゚´Д`゚)゚。

    VBAでフォームを作成しても良いのですが、複数選択ができないためCOMの動作を作成したのですが・・・。

    別の方法を考えるように致します。

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

    2009年2月27日 0:44
  • 下記に続く。
    http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/01f31679-d5ab-48fe-829e-98a19d5d6400
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年3月3日 15:08
    モデレータ
  • こんにちは。中川俊輔です。

    Azuleanさん、回答ありがとうございます。

    dog.lifeさん、フォーラムのご利用ありがとうございます。
    有用な情報と思われたため、Azuleanさんの回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔
    2009年3月12日 10:15