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での使用方法

VB.NETソースコード

Import System

Public Class Test
 Public Sub TestMethod()
   MsgBox("メソッドが呼び出されました。")
 Eun Sub
End Class

VBAソースコード

' ダイナミックリンクライブラリ(DLL)の外部プロシージャへの参照を宣言します。
Public Declare Sub TestMethod Lib "Test.dll" ()

Sub CreateTestObject()
' オブジェクト作成 
' 名前空間を忘れがちなので気を付ける
' これでTestクラスのメソッドが使用可能になる
Set QrObj = CreateObject("System.Test")
End Sub

' メソッド使用
Sub VBATest()
QrObj.TestMethod()
End Sub