Compartir a través de


xlUDF

Hace referencia a: Excel 2013 | Office 2013 | Visual Studio

Llama a una función definida por el usuario (UDF). Esta función permite que un archivo DLL llame a funciones definidas por el usuario de Visual Basic para Aplicaciones (VBA), funciones de lenguaje de macros XLM y funciones registradas contenidas en otros complementos.

Excel12(xlUDF, LPXLOPER12 pxRes, int iCount, LPXLOPER12 pxFnRef,
LPXLOPER12 pxArg1, ...);

Parameters

pxFnRef (xltypeRef, xltypeSRef, xltypeStr o xltypeNum)

Referencia de la función a la que desea llamar. Puede ser una referencia de celda de hoja de macros, el nombre registrado de la función como una cadena o el identificador de registro de la función. Para las funciones de complemento XLL registradas mediante xlfRegister o REGISTER con el argumento pxFunctionText proporcionado, el identificador se puede obtener mediante xlfEvaluate para buscar el nombre.

pxArg1, ...

Cero o más argumentos para la función definida por el usuario. Cuando se llama a esta función en versiones anteriores a Excel 2007, el número máximo de argumentos adicionales que se pueden pasar es 29, que es 30, incluido pxFnRef. A partir de Excel 2007, este límite se eleva a 254, que es 255, incluido pxFnRef.

Valor devuelto

Devuelve el valor que devolvió la función definida por el usuario.

Ejemplo

En el ejemplo siguiente se ejecuta TestMacro en la hoja Macro1 de BOOK1.XLS. Asegúrese de que la macro está en una hoja denominada 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;
}

Vea también