Excel4v/Excel12v

适用于:Excel 2013 | Office 2013 | Visual Studio

从 DLL、XLL 或代码资源中调用内部 Microsoft Excel 工作表函数、宏工作表函数或命令,或仅限 XLL 的特殊函数或命令。

所有最新版本的 Excel 都支持 Excel4v。 从 Excel 2007 开始,支持 Excel12v

仅当 Excel 已将控件传递给 DLL 或 XLL 时,才能调用这些函数。 当 Excel 通过调用 Visual Basic for Applications (VBA) 间接传递控件时,也可以调用它们。 不能在任何其他时间调用它们。 例如,在调用 DllMain 函数期间或操作系统调用 DLL 的其他时间,或者从 DLL 创建的线程中调用它们。

Excel4 和 Excel12 函数接受其参数作为堆栈上的可变长度列表,而 Excel4vExcel12v 函数接受其参数作为数组。 在所有其他方面, Excel4 的行为与 Excel4v 相同, Excel12 的行为与 Excel12v 相同。

int _cdecl Excel4v(int iFunction, LPXLOPER pxRes, int iCount, LPXLOPER rgx[]);
int _cdecl Excel12v(int iFunction, LPXLOPER12 pxRes, int iCount, LPXLOPER12 rgx[]);

参数

iFunction (int)

一个数字,指示要调用的命令、函数或特殊函数。 有关有效 iFunction 值的列表,请参阅以下“备注”部分。

pxRes (LPXLOPERLPXLOPER12)

Excel4v) 的情况下,指向 XLOPER (的指针;对于 Excel12v) ,XLOPER12 ( 将保存计算函数的结果。

iCount (int)

将传递给函数的后续参数数。 在 2003 之前的 Excel 版本中,这可以是 0 到 30 的任何数字。 从 Excel 2007 开始,这可以是 0 到 255 的任何数字。

rgx (LPXLOPER []LPXLOPER12 [])

一个数组,其中包含函数的参数。 数组中的所有参数必须是指向 XLOPER 的指针或 XLOPER12 值。

返回值

这些函数返回与 Excel4Excel12 相同的值。

备注

如果传递给 运算符的参数数可变,则这些函数非常有用。 例如,使用 xlfRegister 注册函数时,Excel4vExcel12v 非常有用,其中总参数数取决于所注册的函数采用的参数数。 为 Excel4 或 Excel12 编写包装函数时,Excel4vExcel12v 也很有用。 在这些情况下,需要像通常提供给 Excel4Excel12 一样,将变量参数列表转换为大小可变的单个数组参数,以便使用 Excel4v 或 Excel12v 回调 Excel。

示例

有关代码示例,请参阅 Excel 2010 XLL SDK 中 ExcelExcel12f 函数的代码,该代码位于安装 SDK 的以下位置:

Samples\Framewrk\Framewrk.c

另请参阅

Excel4/Excel12