Поделиться через


Excel4v/Excel12v

Область применения: Excel 2013 | Office 2013 | Visual Studio

Вызывает внутреннюю функцию листа Microsoft Excel, функцию или команду листа макросов или специальную функцию или команду только XLL из ресурса DLL, XLL или кода.

Все последние версии Excel поддерживают Excel4v. Начиная с Excel 2007 поддерживается Excel12v .

Эти функции можно вызывать только в том случае, если Excel передал управление библиотеке DLL или XLL. Их также можно вызывать, если Excel передал управление косвенно через вызов Visual Basic для приложений (VBA). Они не могут быть вызваны в любое другое время. Например, они не могут вызываться во время вызовов функции DllMain или в других случаях, когда операционная система вызвала библиотеку DLL, или из потока, созданного библиотекой DLL.

Функции Excel4 и Excel12 принимают свои аргументы в виде списка переменной длины в стеке, тогда как функции Excel4v и Excel12v принимают свои аргументы в виде массива. Во всех остальных отношениях 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 (LPXLOPER или LPXLOPER12)

Указатель на XLOPER (в случае Excel4v) или XLOPER12 (в случае Excel12v), который будет содержать результат вычисляемой функции.

iCount (int)

Число последующих аргументов, которые будут переданы функции. В версиях Excel до 2003 это может быть любое число от 0 до 30. Начиная с Excel 2007, это может быть любое число от 0 до 255.

rgx (LPXLOPER [] или LPXLOPER12 [])

Массив, содержащий аргументы функции. Все аргументы в массиве должны быть указателями на значения XLOPER или XLOPER12 .

Возвращаемое значение

Эти функции возвращают те же значения, что и Excel4 и Excel12.

Замечания

Эти функции полезны, если число аргументов, передаваемых оператору, является переменным. Например, Excel4v и Excel12v полезны при регистрации функций с помощью xlfRegister , где количество аргументов общего числа зависит от количества аргументов, принятых регистрируемой функцией. Excel4v и Excel12v также полезны при написании функции-оболочки для Excel4 или Excel12. В таких случаях необходимо преобразовать список переменных аргументов, как правило, в Excel4 или Excel12, в один аргумент массива переменной величины для обратного вызова в Excel с помощью Excel4v или Excel12v.

Пример

Примеры кода см. в коде функций Excel и Excel12f в пакете SDK XLL для Excel 2010 в следующем расположении, где установлен пакет SDK:

Samples\Framewrk\Framewrk.c

См. также

Excel4/Excel12