Applies ToExcel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2024 Excel 2024 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2016 Excel для iPad Excel для iPhone Excel для планшетов с Android Excel для телефонов с Android

Важно:  Внимание!    Неправильное изменение реестра может привести к серьезному повреждению системы и вызвать необходимость ее переустановки. Корпорация Майкрософт не гарантирует успешного устранения неполадок, вызванных ошибками при редактировании реестра. Перед изменением реестра сохраните архивные копии любых важных данных. Новейшие сведения об использовании и защите реестра вашего компьютера см. в справке Microsoft Windows.

В этой статье описаны синтаксис формулы и использование функций ВЫЗВАТЬ, РЕГИСТРАТОР и РЕГИСТРАТОР.ИД в Microsoft Excel.

Примечание:  Функции CALL и REGISTER недоступны в Excel в Интернете.

В этой статье

Описание

Ниже описаны аргументы и типы возвращаемых значений функций ВЫЗВАТЬ, РЕГИСТРАТОР и РЕГИСТРАТОР.ИД. Аргументы и возвращаемые значения зависят от операционной среды; эти различия отражены в таблице типов данных.

К началу страницы

Типы данных

В функциях ВЫЗВАТЬ, РЕГИСТРАТОР и РЕГИСТРАТОР.ИД аргумент "типы_данных" задает типы данных возвращаемых значений и всех аргументов для функции библиотеки DLL или кодового ресурса. Первый знак определяет тип данных возвращаемого значения. Остальные знаки указывают типы данных всех аргументов. Например, функция DLL, возвращающая число с плавающей запятой и принимающая целое число и число с плавающей запятой в качестве аргументов, требует в качестве аргумента "типы_данных" строку "BIB".

Приведенная ниже таблица содержит полный список кодов типов данных, распознаваемых Microsoft Excel, описание каждого типа данных и способ передачи значения, а также типичные объявления типов данных в языке программирования C.

Код

Описание

Передается

Объявление в языке C

А

Логическое значение(ЛОЖЬ = 0), ИСТИНА = 1)

Значение

short int

B

8-байтовое число с плавающей запятой

Значение(Windows)

Ссылка (Макинтош)

double(Windows)

double * (Макинтош)

C

Строка, заканчивающаяся кодом 0 (максимальная длина строки = 255)

Ссылка

char *

D

Строка со счетчиком байтов (первый байт содержит длину строки, максимальная длина строки = 255 знаков)

Ссылка

Unsigned char *

E

8-байтовое число с плавающей запятой

Ссылка

double *

F

Строка, заканчивающаяся кодом 0 (максимальная длина строки = 255 знаков)

Ссылка (изменяется на месте)

char *

G

Строка со счетчиком байтов (первый байт содержит длину строки, максимальная длина строки = 255 знаков)

Ссылка (изменяется на месте)

unsigned char *

H

2-байтовое беззнаковое целое

Значение

unsigned short int

I

2-байтовое целое число со знаком

Значение

short int

J

4-байтовое целое число со знаком

Значение

long int

K

Массив

Ссылка

FP *

L

Логическое значение(ЛОЖЬ = 0, ИСТИНА = 1)

Ссылка

short int *

M

2-байтовое целое число со знаком

Ссылка

short int *

N

4-байтовое целое число со знаком

Ссылка

long int *

O

Массив

Ссылка

Передаются три аргумента:unsigned short int *unsigned short int *double [ ]

P

Структура данных Microsoft Excel OPER

Ссылка

OPER *

R

Структура данных Microsoft Excel XLOPER

Ссылка

XLOPER *

К началу страницы

Замечания

  • Объявления для языка C основаны на предположении, что компилятор использует по умолчанию 8 байт для хранения чисел с двойной точностью, 2 байта — для коротких целых и 4 — для длинных целых.

  • В среде программирования Microsoft Windows все указатели являются дальними. Например, в Microsoft Windows код типа данных D должен быть объявлен как unsigned char far *.

  • При вызове всех функций в библиотеках DLL и кодовых ресурсах используются соглашения о вызове Pascal. Большинство компиляторов C позволяют использовать соглашения о вызове Pascal, добавив ключевое слово pascal в объявление функции, как показано в примере: pascal void main (rows,columns,a)

  • Если функция использует тип данных передачи по ссылке для возвращаемого значения, в качестве возвращаемого значения можно передать пустой указатель. Microsoft Excel интерпретирует пустой указатель как #NUM! (значение ошибки).

К началу страницы

Дополнительные сведения о типах данных

Этот раздел содержит подробную информацию о типах данных F, G, K, O, P и R, а также другие сведения об аргументе "типы_данных".

Типы данных F и G

При работе с типами данных F и G функция может модифицировать буфер строки, выделенный приложением Microsoft Excel. Если код типа возвращаемого значения — F или G, значение, возвращаемое функцией, игнорируется. Вместо этого в списке аргументов функции выполняется поиск первого подходящего типа данных (F или G), и текущее содержимое выделенного буфера строки рассматривается как возвращаемое значение. В приложении Microsoft Excel для аргумента выделяется 256 байт, поэтому возвращаемая функцией строка может оказаться длиннее полученной.

К началу страницы

Тип данных K

Тип данных K использует указатель на структуру FP, имеющую переменную длину. Необходимо следующим образом определить эту структуру в динамической библиотеке или программном ресурсе:

typedef struct _FP{    unsigned short int rows;    unsigned short int columns;    double array[1];        /* Actually, array[rows][columns] */} FP;

Объявление double array[1] выделяет память только для массива, содержащего один элемент. Число элементов в реальном массиве равно числу строк, умноженному на число столбцов.

К началу страницы

Тип данных O

Тип данных O может использоваться только как аргумент, но не как возвращаемое значение. Этот тип передает три элемента: указатель на число строк в массиве, указатель на число столбцов в массиве и указатель на двухмерный массив чисел с плавающей запятой.

Вместо возврата значения функция может изменить массив, переданный типом данных O. Для этого в качестве аргумента type_text можно использовать ">O". Дополнительные сведения см. в разделе Изменение на месте — функции, объявленные как void.

Тип данных O был создан для обеспечения прямой совместимости с динамическими библиотеками Fortran, которые передают аргументы по ссылке.

К началу страницы

Тип данных P

Тип данных P представляет собой указатель на структуру OPER. Структура OPER содержит 8 байт данных, за которыми следует 2-байтовый идентификатор, который определяет тип данных. При работе с типом данных P функция DLL или программный ресурс могут возвращать любой тип данных Microsoft Excel.

Структура OPER определяется следующим образом:

typedef struct _oper

{    union    {        double num;        unsigned char *str;        unsigned short int bool;        unsigned short int err;        struct        {            struct _oper *lparray;            unsigned short int rows;            unsigned short int columns;        } array;    } val;    unsigned short int type;} OPER;

Поле тип содержит одно из следующих значений:

Тип

Описание

Используемое поле в val

1

Число

num

2

Строка (первый байт содержит длину строки)

str

4

Логическое значение

bool

16

Ошибка. Значения ошибок:

0#ПУСТО!

7#ДЕЛ/0!

15#ЗНАЧ!

23#ССЫЛ!

29#ИМЯ?

36#ЧИСЛО!

42#Н/Д

err

64

Массив

массив

128

Пропущенный аргумент

256

Пустая ячейка

Последние два значения могут использоваться только как аргументы, но не как возвращаемые значения. Значение 128 (пропущенный аргумент) передается в том случае, если при вызове опущен какой-либо аргумент. Значение 256 (пустая ячейка) передается в случае ссылки на пустую ячейку при вызове функции.

К началу страницы

Тип данных R — вызов функций Microsoft Excel из библиотек DLL

Тип данных R — это указатель на структуру XLOPER, которая является расширенной версией структуры OPER. В Microsoft Excel 4.0 и более поздних версиях приложения тип данных R можно использовать для создания библиотек DLL и ресурсов кода, которые вызывают функции Microsoft Excel. Используя структуру XLOPER, функции DLL могут передавать ссылки на лист и осуществлять не только передачу данных, но и управление потоком. Полное описание типа данных R и программного интерфейса приложения Microsoft Excel выходит за рамки данного раздела. Подробные сведения о типе данных R, программном интерфейсе Microsoft Excel и многих других технических аспектах этого приложения можно найти в пакете Руководство разработчика Microsoft Office XP.

К началу страницы

Переменные функции и повторные вычисления

Microsoft Excel обычно вычисляет функцию из динамической библиотеки (или программный ресурс) тогда, когда она вводится в ячейку, когда изменяется одна из влияющих ячеек или когда ячейка вычисляется в процессе выполнения макроса. Можно сделать функцию DLL или программный ресурс на листе временными, то есть они будут вычисляться всякий раз, когда пересчитывается лист. Для этого в конец аргумента "типы_данных" надо добавить восклицательный знак (!).

Например, в Microsoft Excel для Windows приведенная ниже формула будет пересчитываться всякий раз, когда будет пересчитываться лист:

ВЫЗВАТЬ("Kernel32","GetTickCount","J!")

К началу страницы

Изменение на месте — функции, объявленные как недействительные

В качестве типа возвращаемого значения в аргументе "типы_данных" можно использовать одну цифру n (от 1 до 9). Это указывает приложению Microsoft Excel на необходимость изменить переменную, указанную аргументом номер n в аргументе "типы_данных", а не возвращать значение. Этот прием иногда называют изменением на месте. Типом n-го аргумента должен быть тип, передаваемый по ссылке (C, D, E, F, G, K, L, M, N, O, P или R). Функция DLL или программный ресурс при работе с языком C должны быть объявлены с ключевым словом void (или, при программировании на языке Pascal, с ключевым словом procedure).

Например, функция DLL, которая получает строку, заканчивающуюся знаком 0, и два указателя на целые числа в качестве аргументов, может отредактировать строку на месте. Используйте "1FMM" в качестве аргумента "типы_данных" и объявите функцию как void.

Версии, предшествующие Microsoft Excel 4.0, использовали символ > для изменения первого аргумента на месте; Невозможно изменить какой-либо аргумент, кроме первого. Символ > эквивалентен n = 1 в Microsoft Excel версии 4.0 и более поздних.

К началу страницы

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.