Excel で使用する単純なクラス ライブラリがあります。これが私のクラスの単純化です...
using System;
using System.Runtime.InteropServices;
namespace SimpleLibrary
{
[ComVisible(true)]
public interface ISixGenerator
{
int Six();
}
public class SixGenerator : ISixGenerator
{
public int Six()
{
return 6;
}
}
}
Excel 2007 では、マクロを有効にしたブックを作成し、次のコードを含むモジュールを追加します。
Public Function GetSix()
Dim lib As SimpleLibrary.SixGenerator
lib = New SimpleLibrary.SixGenerator
Six = lib.Six
End Function
次に、Excel で関数 GetSix() を呼び出すと、6 が返されます。これは、Excel 2010 64 ビットでは機能しなくなりました。実行時エラー「429」が表示されます: ActiveX コンポーネントはオブジェクトを作成できません。
プラットフォーム ターゲットを任意の CPU ではなく x64 に変更しようとしましたが、[COM 相互運用機能に登録する] オプションをオフにしない限りコードがコンパイルされませんでした。 .
ライブラリを Excel 2010 64 ビットで使用する方法はありますか?