方法: Visual Basic から COM オブジェクトを参照する

Visual Basic でタイプ ライブラリがある COM オブジェクトへの参照を追加するには、COM ライブラリ用の相互運用アセンブリを作成する必要があります。 COM オブジェクトのメンバーへの参照は相互運用アセンブリにルーティングされてから、実際の COM オブジェクトに転送されます。 COM オブジェクトからの応答は相互運用アセンブリにルーティングされてから、.NET Framework アプリケーションに転送されます。

.NET アセンブリに COM オブジェクトの型情報を埋め込むことによって、相互運用アセンブリを使用せずに COM オブジェクトを参照できます。 型情報を埋め込むには、COM オブジェクトへの参照の Embed Interop Types プロパティを True に設定します。 コマンド ライン コンパイラを使用してコンパイルする場合は、/link オプションを使用して COM ライブラリを参照します。 詳細については、「-link (Visual Basic)」を参照してください。

統合開発環境 (IDE) からタイプ ライブラリへの参照を追加すると、Visual Basic によって相互運用アセンブリが自動的に作成されます。 コマンド ラインから作業する場合は、Tlbimp ユーティリティを使用して、相互運用アセンブリを手動で作成できます。

COM オブジェクトへの参照を追加するには

  1. [プロジェクト] メニューの [参照の追加] を選択し、次にダイアログ ボックスの [COM] タブをクリックします。

  2. COM オブジェクトの一覧から、使用するコンポーネントを選択します。

  3. 相互運用アセンブリへのアクセスを簡単にするために、COM オブジェクトを使用するクラスまたはモジュールの先頭に Imports ステートメントを追加します。 たとえば、次のコード例では、Microsoft InkEdit Control 1.0 ライブラリで参照されているオブジェクトの INKEDLib 名前空間をインポートします。

    Imports INKEDLib
    
    Class Sample
        Private s As IInkCursor
    
    End Class
    

Tlbimp を使用して相互運用アセンブリを作成するには

  1. Tlbimp の場所がまだ検索パスに含まれておらず、現在のディレクトリに存在しない場合は、検索パスにそれを追加します。

  2. 次の情報を指定してコマンド プロンプトから Tlbimp を呼び出します。

    • タイプ ライブラリを含む DLL の名前と場所

    • 情報の配置先となる名前空間の名前と場所

    • ターゲットとする相互運用アセンブリの名前と場所

    次にコード例を示します。

    Tlbimp test3.dll /out:NameSpace1 /out:Interop1.dll  
    

    登録されていない COM オブジェクトに対しても、Tlbimp.exe を使用してタイプ ライブラリの相互運用アセンブリを作成できます。 ただし、相互運用アセンブリによって参照される COM オブジェクトは、それらが使用されるコンピューターに適切に登録されている必要があります。 Windows オペレーティング システムに含まれている Regsvr32 ユーティリティを使用して、COM オブジェクトを登録できます。

関連項目