Excel VBAで.NET(C#,VB)で作成したDLLを使用する方法
実行環境
OS : Windows Server 2003,Windows 7
Excel: Excel2003
準備
①C# or VB.NETでDLLを作成。(Test.dll)
②DLLをレジストリに登録し、DLLのタイプライブラリを作成する。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe /tlb Test.dll
ここで「RegAsmは有効なWin32〜ではありません。」とエラーが表示された場合、RegAsm.exeが壊れている可能性がある。(ファイルサイズが0KB)
その際は他マシンからコピペで上記のフォルダに入れる。
③作成したタイプライブラリをVBAの「参照設定」から追加する。
「ツール」→「参照設定」
作成したタイプライブラリを追加するだけでは動かない場合、以下の参照可能なライブラリファイルも追加する。
- COM + 1.0 Admin Type Library
- COM AddIn
- COM+ Services Type Library
VBAでの使用方法
Import System Public Class Test Public Sub TestMethod() MsgBox("メソッドが呼び出されました。") Eun Sub End Class
' ダイナミックリンクライブラリ(DLL)の外部プロシージャへの参照を宣言します。 Public Declare Sub TestMethod Lib "Test.dll" () Sub CreateTestObject() ' オブジェクト作成 ' 名前空間を忘れがちなので気を付ける ' これでTestクラスのメソッドが使用可能になる Set QrObj = CreateObject("System.Test") End Sub ' メソッド使用 Sub VBATest() QrObj.TestMethod() End Sub