○.netのDLLをCOMとして登録して使用する

ファイル名 : ClassLibrary1.DLL

Visual Studio .NET コマンド プロンプトを開いて

C:\>regasm ClassLibrary1.dll /tlb /codebase

を実行することにより
@.tlbの生成、登録
ACOM相互運用のためのレジストリ登録
が行われます。

もちろんCOMになりますから、VB6やVBAなどで呼び出せます

登録を解除するには

C:\>regasm ClassLibrary1.dll /unregister




○開発環境(VS2003)にて.netのクラスを登録してVBAにて使用する

■VB.net 2003にて作成されたActiveXコントロール

1、プロジェクト→クラスライブラリにて新規作成
2、プロジェクトのプロパティのBuildにて Register for COM Interrap にチェックを入れる



3、以上でビルドするとレジストリにActiveXとして登録される
VB6のようにGUIDが毎回変わったりしないので便利


プロジェクト名	:	aClassLibrary1
クラス名		:	Class1

Public Class Class1

    Public Function addInteger(ByVal a As Int16, ByVal b As Int16) As Int16
        Return a + b
    End Function

    Public Function addLong(ByVal a As Int32, ByVal b As Int32) As Int32
        Return a + b
    End Function

    Public Function addDouble(ByVal a As Double, ByVal b As Double) As Double
        Return a + b
    End Function

    Public Function addString(ByVal a As String, ByVal b As String) As String
        Return a + b + ":.net てすと"
    End Function

End Class


■VBAでの呼び出し
ActiveXコントロールを参照設定にて参照します

Public obj As New aClassLibrary1.Class1

Public Function test()
    
    Dim i As Integer
    i = obj.addInteger(10, 20)
    
    Dim l As Long
    l = obj.addLong(20, 30)
    
    Dim d As Double
    d = obj.addDouble(0.01, 1.1)
    
    Dim s As String
    s = obj.addString("いなば", "test")
    
End Function



▲トップページ > Visual BASIC と C#