VBA で XLOPER 型変数を処理する方法がわかりません。Xloper 変数、c++ DLL 、およびXLL アドインの関係を説明する Web ページはたくさんありますが、XLL フレームワークを使用せずに xloper を直接 VBA に返す dll に c++ 関数を記述する必要があります。(dll の関数は Excel ユーザーではなく VBA コードによって呼び出されるため、ユーザー定義関数は必要ありません)。
実際、私は Excel VSTO をコーディングしており、そこから C++ コードを呼び出す必要があります。xloper 変数は XLL に非常に役立つことがわかったので、この変数タイプを VBA/VB.Net で直接使用したいと考えています。それで、それは可能ですか?
- xloper はバリアント型を使用して処理できると思いますが、方法がわかりません。この投稿を見つけました: XLOPER と VARIANT の間でどのようにマーシャリングできますか? しかし、明確な答えはありません。
編集 :
わかりにくかったらすみません。たとえば、この C++ 関数を作成して、Excel から Int を受け取り、Excel への xloper variale として同じ値に 5 を加えた値を返します。
_declspec(dllexport) xloper _stdcall returnInt( int iVal)
{
xloper pxlval_ret;
int a ;
a =5 + iVal;
pxlval_ret->xltype = xltypeInt;
pxlval_ret->val.w = a ;
return pxlval_ret;
}
しかし、vba でそれを呼び出す方法がわかりません。戻り変数は VARIANT ですか?