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。 对于使用 xlfRegister 或 REGISTER 注册且提供 的参数 pxFunctionText 的 XLL 外接程序函数,可以使用 xlfEvaluate 查找名称来获取 ID。
pxArg1, ...
用户定义的函数的零个或多个参数。 在 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;
}