2016-12-13 12 views
0

実行可能な形式のExcel(VBA)内でC#プロジェクトを使用するにはどうすればよいですか?COMインターオペラ用VBAリファレンス(Excel内)として.NET EXEを追加

プロジェクト設定に行き、 "出力タイプ"を "クラスライブラリ"に変更すると、Excel VBAでプロジェクトへの参照を正常に追加できます(参照のDLLを参照します)。セクション)。

しかし、私の「出力タイプ」が設定されている場合は、「Windowsアプリケーション」に、私は新しく生成されたEXEファイル(エクセルVBA内)の参照を追加しようとした場合、私は、次のエラーが表示さ:

Can't add a reference to the specified file

Excel VBAで.NET EXEを参照するにはどうすればよいですか?

(私のアプリケーションは、Windowsアプリケーションとして、およびCOMオブジェクトとしての両方で使用することができるように、exeファイルではなく、DLLを使用するための私の目的は)

答えて

2

正確な詳細を知らなくても、私は単にDLLの輸出ことを推測Excelに必要な機能EXEは通常、関数をエクスポートしません。

.NETの利点は、モジュール化されたアプリケーションを簡単に作成できることです。なぜ、コア機能をDLLに入れて機能を使用できるアプリケーションを作成しないのですか?

あなたはVBAからDLLを使用することができ、それでもスタンドアローンを使用できるアプリケーションがあります。

+0

ご回答ありがとうございます。私は[この男は正しい]かどうか分からない(http://stackoverflow.com/questions/7054481/how-to-produce-a-mix-of-dll-and-exe-in-one-c-sharp) -project-in-visual-studio-or-o/7055824#7055824)、彼は.NETの実行可能ファイルをあたかもdllであるかのように参照できると主張しています。私がただ一つのexeを送ることができれば、もっときれいになるでしょう。 – user966893

+0

** ** .NET **アセンブリ**を他の.NETプロジェクト**の参照として**追加することができます。 .NETは、.NETアセンブリである限り、拡張子が.exeまたは.dllまたは.blurbのアセンブリであるかどうかは気にしません。しかし、それはExcel VBAで.NET DLLを使用する場合とは大きく異なるものです! –

+0

入手しました。私はVBAがVB6 EXEを参照できることを覚えているようですが、.NETの<=> VBA通​​信ではおそらく同様のことはできません。 実際には、.NETプロジェクトプロパティの**アセンブリ情報**にオプションがあります。これにより、 "アセンブリをCOM-Visibleにする"を設定できます。このオプションはWindowsアプリケーションでも有効ですが、おそらく実際にはDLLにのみ適用されます。 – user966893

関連する問題