0

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" を含むメッセージ ボックスを作成します。

ただし、これをカスタム ワークシート関数で動作させることはできません。ワークシート関数の代わりにコマンドとして登録しても機能しません。

= / () の有無にかかわらず、さまざまなスタイルの関数名を試してみました。

誰でもこれで私を助けることができますか?

4

1 に答える 1

1

xlstringは一時オブジェクトのアドレスを返していますか?

于 2011-04-08T19:08:51.280 に答える