Excel 用の C++ .xll アドインがあります。次のテスト ワークシート関数は、読み込まれた xll で正常に動作します。
LPXLOPER __stdcall Test()
{
return &xlstring("Yayage",true)
}
つまり、=Test() はワークシートで "Yayage" を返します。xlstring は、文字列を Excel 文字列に変換し、Excel または xll がそのメモリを解放する責任があるかどうかを指定する、私自身のカスタム メソッドです。
VBA を使用して、バージョン 2003 以前の「GUI コンパニオン」アドインと、2007 以降の C# Excel 2007 アドイン プロジェクトを作成する予定です。これらはどちらも、Web サービスと通信するバージョンに依存しない .xll で動作します。
C# と VBA の両方に次の Excel 関数があります。 Application.ExecuteExcel4Macro(string) Application.Evaluate(string) Application.Run(...)
これらは、文字列を返す通常のワークシート関数 (VBA など) で正常に動作します (C# で 32 個のパラメーターを必要とする .Run を除く)。
MsgBox Application.<Any above method>("=Trim("" Billy Bob Fred "")")
"Billy Bob Fred" を含むメッセージ ボックスを作成します。
ただし、これをカスタム ワークシート関数で動作させることはできません。ワークシート関数の代わりにコマンドとして登録しても機能しません。
= / () の有無にかかわらず、さまざまなスタイルの関数名を試してみました。
誰でもこれで私を助けることができますか?