调用用户定义函数,这个函数允许DLL 调用 VBA 中的用户定义函数,XLM 宏语言函数,以及在其它 add-ins 中注册的函数。
原型
Excel12(xlUDF, LPXLOPER12 pxRes, int iCount, LPXLOPER12 pxFnRef,LPXLOPER12 pxArg1, ...);
参数
pxFnRef ( xltypeRef, xltypeSRef, xltypeNum)
表示你要调用的函数。它可以是一个宏表单元格引用 ,注册的函数名称字符串 或是 注册的函数ID。使用 xlfRegister 和 REGISTER 注册函数。ID 可以使用 xlfEvaluate 函数获取。
pxArg1,...
将零个或多个参数传递给 用户定义函数。
返回值
将调用的函数的返回值做为它自己的返回值。
实例
The following example runs TestMacro on sheet Macro1 in BOOK1.XLS. Make sure that the macro is on a sheet named 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;
}