xlUDF

Aplica-se a: Excel 2013 | Office 2013 | Visual Studio

Chama uma UDF (função definida pelo usuário). Essa função permite que uma DLL chame funções definidas pelo usuário Visual Basic for Applications (VBA), funções de linguagem de macro XLM e funções registradas contidas em outros suplementos.

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

Parâmetros

pxFnRef (xltypeRef, xltypeSRef, xltypeStr ou xltypeNum)

A referência da função que você deseja chamar. Isso pode ser uma referência de célula de folha de macro, o nome registrado da função como uma cadeia de caracteres ou a ID de registro da função. Para funções de suplemento XLL registradas usando xlfRegister ou REGISTER com o argumento pxFunctionText fornecido, a ID pode ser obtida usando xlfEvaluate para pesquisar o nome.

pxArg1, ...

Zero ou mais argumentos para a função definida pelo usuário. Quando você está chamando essa função em versões anteriores ao Excel 2007, o número máximo de argumentos adicionais que podem ser passados é 29, que é 30 incluindo pxFnRef. A partir do Excel 2007, esse limite é elevado para 254, que é 255, incluindo pxFnRef.

Valor de retorno

Retorna qualquer valor retornado pela função definida pelo usuário.

Exemplo

O exemplo a seguir executa TestMacro na planilha Macro1 em BOOK1.XLS. Verifique se a macro está em uma planilha chamada 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;
}

Confira também