xlUDF
適用対象: Excel 2013 | Office 2013 | Visual Studio
ユーザー定義関数 (UDF) を呼び出します。 この関数により、DLL は Visual Basic for Applications (VBA) のユーザー定義関数、XLM マクロ言語の関数、およびその他のアドインに含まれる登録済みの関数を呼び出すことができます。
Excel12(xlUDF, LPXLOPER12 pxRes, int iCount, LPXLOPER12 pxFnRef,
LPXLOPER12 pxArg1, ...);
パラメーター
pxFnRef (xltypeRef、xltypeSRef、xltypeStr、または xltypeNum)
呼び出す関数の参照。 これはマクロ シートのセルの参照、文字列としての関数の登録名、または関数の登録 ID になります。 引数に pxFunctionText を指定した xlfRegister または REGISTER を使用して登録された XLL アドイン関数の場合、xlfEvaluate を使用して名前を検索すると ID を取得できます。
pxArg1, ...
ユーザー定義関数に渡される 0 個以上の引数。 Excel 2007 より前のバージョンでこの関数を呼び出す場合、渡すことができる追加引数の最大数は 29 で、 pxFnRef を含む 30 です。 Excel 2007 以降では、この制限は 254 に引き上げられます。 これは pxFnRef を含む 255 です。
戻り値
ユーザー定義関数が返す値を返します。
例
次の例では、BOOK1.XLS のシート Macro1 で TestMacro を実行します。 マクロが Macro1 という名前のシート上にあることを確認してください。
\SAMPLES\EXAMPLE\EXAMPLE.C
short WINAPI xlUDFExample(void)
{
XLOPER12 xMacroName, xMacroRef, xRes;
xMacroName.xltype = xltypeStr;
xMacroName.val.str = L"\044[BOOK1.XLSX]Macro1!TestMacro";
Excel12(xlfEvaluate, &xMacroRef, 1, (LPXLOPER12)&xMacroName);
Excel12(xlUDF, &xRes, 1, (LPXLOPER12)&xMacroRef);
return 1;
}