xlUDF
S’applique à: Excel 2013 | Office 2013 | Visual Studio
Appelle une fonction définie par l’utilisateur (UDF). Cette fonction permet à une DLL d’appeler des fonctions Visual Basic pour Applications (VBA) définies par l’utilisateur, des fonctions de langage de macro XLM et des fonctions inscrites contenues dans d’autres compléments.
Excel12(xlUDF, LPXLOPER12 pxRes, int iCount, LPXLOPER12 pxFnRef,
LPXLOPER12 pxArg1, ...);
Paramètres
pxFnRef (xltypeRef, xltypeSRef, xltypeStr ou xltypeNum)
Référence de la fonction que vous souhaitez appeler. Il peut s’agir d’une référence de cellule de feuille macro, du nom inscrit de la fonction sous forme de chaîne ou de l’ID de registre de la fonction. Pour les fonctions de complément XLL inscrites à l’aide de xlfRegister ou REGISTER avec l’argument pxFunctionText fourni, l’ID peut être obtenu à l’aide de xlfEvaluate pour rechercher le nom.
pxArg1, ...
Zéro ou plusieurs arguments pour la fonction définie par l’utilisateur. Lorsque vous appelez cette fonction dans des versions antérieures à Excel 2007, le nombre maximal d’arguments supplémentaires pouvant être passés est de 29, soit 30, y compris pxFnRef. À compter d’Excel 2007, cette limite est augmentée à 254, soit 255 , y compris pxFnRef.
Valeur renvoyée
Retourne la valeur retournée par la fonction définie par l’utilisateur.
Exemple
L’exemple suivant exécute TestMacro sur la feuille Macro1 dans BOOK1.XLS. Vérifiez que la macro se trouve sur une feuille nommée 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;
}