VB.NETで作成したDLLをVBAとか他から使用する

VB.NETで他のプログラムからDLL作るときにはClassInterfaceっていうのが必要になる。

Imports System.Runtime.InteropServices

<ClassInterface(ClassInterfaceType.AutoDual)>
Public Class Class1

    Public Function test() As Integer

        MsgBox("AAAA")

        Return 0

    End Function

End Class

ClassInterfaceType.AutoDual 使うなってMSDNには書いてあるが、これないとVisualStudioの「TypelibからのMFCクラス」でインターフェースのついたクラスが作成されない。

それなら自力でI/Fかけばいいんだろうけどそれじゃこの便利な機能の意味ないよなぁ。


ネタ元