xlUDF
Gilt für: Excel 2013 | Office 2013 | Visual Studio
Ruft eine benutzerdefinierte Funktion (UDF) auf. Mit dieser Funktion kann eine DLL Visual Basic for Applications (VBA) aufrufen, XLM-Makrosprachfunktionen und registrierte Funktionen, die in anderen Add-Ins enthalten sind.
Excel12(xlUDF, LPXLOPER12 pxRes, int iCount, LPXLOPER12 pxFnRef,
LPXLOPER12 pxArg1, ...);
Parameter
pxFnRef (xltypeRef, xltypeSRef, xltypeStr oder xltypeNum)
Der Verweis der Funktion, die Sie aufrufen möchten. Dies kann ein Makroblattzellenbezug, der registrierte Name der Funktion als Zeichenfolge oder die Register-ID der Funktion sein. Für XLL-Add-In-Funktionen, die mit xlfRegister oder REGISTER mit dem angegebenen Argument pxFunctionText registriert wurden, kann die ID mithilfe von xlfEvaluate abgerufen werden, um den Namen nachzuschlagen.
pxArg1, ...
Null oder mehr Argumente für die benutzerdefinierte Funktion. Wenn Sie diese Funktion in früheren Versionen als Excel 2007 aufrufen, beträgt die maximale Anzahl zusätzlicher Argumente, die übergeben werden können, 29, d. h. 30 einschließlich pxFnRef. Ab Excel 2007 wird dieser Grenzwert auf 254 erhöht, d. h. 255 einschließlich pxFnRef.
Rückgabewert
Gibt den von der benutzerdefinierten Funktion zurückgegebenen Wert zurück.
Beispiel
Im folgenden Beispiel wird TestMacro auf dem Blatt Macro1 in BOOK1.XLS ausgeführt. Stellen Sie sicher, dass sich das Makro auf einem Blatt mit dem Namen Macro1 befindet.
\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;
}