システム開発ブログ/ システムソリューション部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

【.NET】.NETで作成したDLLをVBAで使用する

小佐野
小佐野 (2010年3月19日 12:58)
VBA / .NET / システムソリューション部
みなさん、こんにちは。

始めにVisualStudioでクラスライブラリプロジェクトを作成します。
プロジェクトが作成されたら、[プロジェクト]→[プロパティ]→[COM相互運用機能の登録]にチェックを入れます。
基本的には、これだけでVBAから使用できるようになります。

以下はサンプルの.NETのコードです。
Imports System.IO
Imports System.Runtime.InteropServices

<ClassInterface(ClassInterfaceType.None)> _
Public Class COMSample
    Implements ICOMSample

    Public Sub Method1(
        ByVal vsPath As String,
        ByVal vsMoji As String) Implements ICOMSample.Method1
        Using sw As New StreamWriter(vsPath, True)
            sw.WriteLine(vsMoji)
        End Using
    End Sub

End Class
クラスにClassInterface属性を付与し、インターフェースを作成することでコード補完機能を使用できます。
「ClassInterfaceType.AutoDual」もしくは「ClassInterfaceType.None」を指定します。
「ClassInterfaceType.AutoDual」を指定した場合にはインターフェースが自動で作成されますが、
「ClassInterfaceType.None」を指定した場合には自動で作成されないので、自前でインターフェースを作成し実装します。

プロジェクトをビルドすると、出力先にdllとタイプライブラリファイル(.tlb)が作成されます。
後は、Excelであれば、VisualBasicEditorの[ツール]→[参照設定]で作成されたタイプライブラリファイルを参照します。
参照設定後は通常と同じコードでdllの呼び出しが行えます。

以下はExcelVBAのコードです。
Sub ボタン1_Click()
    Dim sample As New COMSample.COMSample
    Call sample.Method1("c:\test.txt", "VBAから呼び出し")
End Sub
ちなみに、検証環境は.NETFramework2.0、Excel2003ですが、Excel2000ではエラーになってしまい動作しませんでした。
.NETFrameworkのバージョン、Excelのバージョンにより動作しない場合があるようです。

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。