- - PR -
VBAからC#クラスライブラリにアクセスする方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-09-20 20:10
VBAからC#クラスライブラリにアクセスする方法を模索しております。 以下のようなクラスライブラリをVBAから呼び出す為に namespace Foo { public class CFoo { public void Show( string str ) { MessageBox.Show( str ); } } @C#でクラスライブラリ(foo.dll)を生成 AコマンドプロンプトからRegAsmにてCOMとして登録 BEXCELのVBA側でCOMの参照からfoo.dllを参照 CDim = obj CreateObject( "Foo.CFoo" ) と言った手順で処理しています。 しかし、foo.dll自体が他のC#クラスライブラリをリンクしていると 旨く動作できずCreateObjectで落ちてしまいます。 環境は WindowsXP SP2 VS .Net2005 .NET FRAMEWORK2.0 Office2003(EXCEL) なのですが何が悪いのか悩んでおります。 ご教授お願い致します。 | ||||||||
|
投稿日時: 2006-09-20 20:22
なんかまんまのが見つかった
HOW TO: Call a Visual Basic .NET Class Library from Visual Basic for Applications in Microsoft Office | ||||||||
|
投稿日時: 2006-09-20 20:38
ご返答有難うございます。
しかし、これは単にVBAからクラスライブラリにアクセスするだけの記事では・・・。 問題は foo.dll自体が他のC#クラスライブラリをリンクしていると なのです。 | ||||||||
|
投稿日時: 2006-09-21 12:40
その「他の C# クラスライブラリ」は foo.dll から見える場所にあるんですか?
// リンクって言われると微妙に違和感。.NET では参照(Reference)なんで。 | ||||||||
|
投稿日時: 2006-09-22 13:35
確かに「リンク」ではなく「参照」ですね。
「他の C# クラスライブラリ」は foo.dll から見えてます。 test.exeからfoo.dllを実行すればキチンと動作してますので。 | ||||||||
|
投稿日時: 2006-09-22 16:16
参照しているライブラリは、.NET Frameworkのクラスライブラリ? それとも、自作のライブラリ? 自作なら、GACに登録するか、検索できるようにしないといけないじゃなかったっけ? http://msdn2.microsoft.com/ja-jp/library/yx7xezcf.aspx #これは、アプリケーションの場合の話かな?
自作と仮定して、 同じディレクトリ階層に置いているからでは? クラスライブラリが参照できないなら、原因は良くわからない。です。 | ||||||||
|
投稿日時: 2006-12-01 11:50
ご返答有難うございます。
しかし、これは単にVBAからクラスライブラリにアクセスするだけの記事では・・・。 問題は foo.dll自体が他のC#クラスライブラリをリンクしていると なのです。 |
1