CALL және REGISTER функциялары

Маңызды : Сақтаныңыз    Тізбені дұрыс емес өңдеу операциялық жүйңізді қайта орнатуды сұрап, зақымдауы мүмкін. Microsoft корпорациясы тізбені өңдеумен байланысты проблемалардың шешілуіне кепілдік бермейді. Тізбені өңдеудің алдында, барлық керекті деректердің сақтық көшірмесін жасаңыз. Комьютер тізбесінің пайдалану және қорғау туралы ең соңғы ақпаратын Microsoft Windows анықтамасынан қараңыз.

Бұл мақалада Microsoft Excel бағдарламасындағы CALL, REGISTER және REGISTER.ID функцияларының формула синтаксисі мен пайдаланылуы сипатталады.

Ескерту :  CALL және REGISTER функциялары Excel Online бағдарламасында қолжетімді емес.

Осы мақалада

Сипаттама

Деректер түрлері

Ескертпелер

Қосымша деректер түрі туралы ақпарат

F және G дерек түрлері

K деректер түрі

O деректер түрі

P деректер түрі

R деректер түрі — Microsoft Excel функцияларын DLL файлдарынан шақыру

Айнымалы функциялар және қайта есептеу

Орнында өзгерту – Void деп жарияланған функциялар

Сипаттама

Төменде CALL, REGISTER және REGISTER.ID функцияларында қолданылатын аргумент және нәтижелік мәндердің дерек түрлері сипатталған. Жұмыс ортасына қарай, аргументтер мен нәтижелік мәндердің арасында аздаған айырмашылық болады және бұл айырмашылықтар дерек түрлері кестесінде ескеріледі.

Беттің жоғары бөлігі

Деректер түрлері

CALL, REGISTER және REGISTER.ID функцияларында «мәтін_түрі» аргументі нәтижелік мәннің деректер түрі мен DLL функциясының немесе кодтық қор көздерінің барлық аргументінің деректер түрін анықтайды. «Мәтін_түрі» аргументінің бірінші таңбасы нәтижелік мәннің деректер түрін анықтайды. Қалған таңбалар барлық аргументтің деректер түрін көрсетеді. Мысалы, құбылма үтірлі сан беретін және аргументтер ретінде бүтін сан мен құбылма үтірлі санды қабылдайтын DLL функциясы «мәтін_түрі» аргументі үшін "BIB" таңбаларын қажет етеді.

Келесі кестеде Microsoft Excel бағдарламасы танитын деректер түрі кодтарының толық тізімі, әрбір деректер түрінің сипаттамасы, аргументтің немесе нәтижелік мәннің берілу жолы және C бағдарламалау тіліндегі деректер түрінің әдеттегі бейнеленуі берілген.

Код

Сипаттама

Берілу жолы

C бейнеленуі

A

Қисындық мән
(FALSE = 0), TRUE = 1)

Мән

short int

B

IEEE 8 байттық құбылма үтірлі сан

Мән
(Windows)

Сілтеме (Macintosh)

қос
(Windows)

қос * (Macintosh)

C

Нөлмен аяқталатын жол (жолдың ең көп ұзындығы = 255)

Сілтеме

char *

D

Байттары есептеулі жол (бірінші байтта жолдың ұзындығы болады, жолдың ең көп ұзындығы = 255 таңба)

Сілтеме

Таңбасыз char *

E

IEEE 8 байттық құбылма үтірлі сан

Сілтеме

қос *

F

Нөлмен аяқталатын жол (жолдың ең көп ұзындығы = 255 таңба)

Сілтеме (орнында өзгерту)

char *

G

Байттары есептеулі жол (бірінші байтта жолдың ұзындығы болады, жолдың ең көп ұзындығы = 255 таңба)

Сілтеме (орнында өзгерту)

таңбасыз char *

H

Таңбасыз 2 байттық бүтін сан

Мән

таңбасыз short int

I

Таңбалы 2 байттық бүтін сан

Мән

short int

J

Таңбалы 4 байттық бүтін сан

Мән

long int

K

Массив

Сілтеме

FP *

L

Қисындық мән
(FALSE = 0), TRUE = 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 деректер түрі кодын қолтаңбасыз 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 болса, онда Microsoft Excel бағдарламасы функция беретін мәнді елемейді. Оның орнына, Microsoft Excel функция аргументтерінің тізімінен бірінші сәйкес деректер түрін (F немесе G) іздеп, бөлектелген жол сақтағышының ағымдағы мазмұнын нәтижелік мән ретінде қарастырады. Microsoft Excel бағдарламасында аргумент үшін 256 байт бөлектеледі, сондықтан функция алғаннан ұзынырақ жол беруі мүмкін.

Беттің жоғары бөлігі

K деректер түрі

K деректер түрі айнымалы өлшемді FP құрылымының меңзерін пайдаланылады. Бұл құрылымды DLL файлында немесе кодтық ресурсында келесі түрде анықтау керек:

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 деректер түрі берілген массивті өзгерте алады. Бұл үшін ">O" формуласын «мәтін_түрі» аргументі ретінде пайдалануға болады. Қосымша ақпарат алу үшін төмендегі "Орнында өзгерту – Void деп жарияланған функциялар" бөлімінен қарауға болады.

O деректер түрі аргументтерді сілтеме арқылы беретін Fortran DLL файлдарымен тікелей үйлесімділік үшін жасалған.

Беттің жоғары бөлігі

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

Сандық

сан

2

Жол (бірінші байтта жолдың ұзындығы болады)

str

4

Буль (қисындық)

логикалық

16

Қате: қате мәндері:

0#NULL!

7#DIV/0!

15#Value!

23#REF!

29#NAME?

36#NUM!

42#N/A

қате

64

Массив

массив

128

Аргумен жоқ

256

Бос ұяшық

Соңғы екі мәнді нәтижелік мәндер емес, тек аргументтер ретінде пайдалануға болады. Шақырушы аргументті есепке алмаған кезде жоқ аргумент мәні (128) беріледі. Шақырушы бос ұяшыққа сілтеме жасаған кезде бос ұяшық мәні (256) беріледі.

Беттің жоғары бөлігі

R деректер түрі — Microsoft Excel функцияларын DLL файлдарынан шақыру

R деректер түрі – OPER құрылымының жетілдірілген нұсқасы болып табылатын XLOPER құрылымының көрсеткіші. Microsoft Excel 4.0 және одан да соңғы нұсқасында Microsoft Excel функцияларын шақыратын DLL файлдары мен кодтық ресурстарын жазу үшін R деректер түрін пайдалануға болады. XLOPER құрылымы арқылы DLL функциясы деректерге қоса, парақ сілтемелерін беріп, ағын бақылауын жүзеге асыра алады. R деректер түрі мен Microsoft Excel қолданбалы бағдарламалық инетрфейсінің (API) толық сипаттамасы бұл тақырыпта қамтылмайды. Microsoft Office XP жасақтаушы нұсқауы құжатында R деректер түрі, Microsoft Excel API тілдесуі және Microsoft Excel бағдарламасының көптеген басқа техникалық қырлары туралы толық ақпарат берілген.

Беттің жоғары бөлігі

Айнымалы функциялар және қайта есептеу

Microsoft Excel бағдарламасы әдетте DLL функциясы (немесе кодтық қор көзі) ұяшыққа енгізілген кезде, оның әсер етуші ұяшықтарының бірі өзгерген кезде немесе ұяшық макросты орындау кезінде есептелген кезде, DLL функциясын (немесе кодтық қор көзін) есептейді. Жұмыс парағында DLL функциясын немесе кодтық ресурсын айнымалы етуге болады, бұл жұмыс парағы әрбір қайта есептелгенде, оның да қайта есептелетінін білдіреді. Функцияны айнымалы ету үшін «мәтін_түрі» аргументінің соңына леп белгісін (!) қосу керек.

Мысалы, Windows жүйесіне арналған Microsoft Excel бағдарламасында жұмыс парағы әрбір қайта есептелгенде, келесі жұмыс парағының өрнегі де қайта есептеледі:

CALL("Kernel32","GetTickCount","J!")

Беттің жоғары бөлігі

Орнында өзгерту – Void деп жарияланған функциялар

«Мәтін_түр» аргументіндегі нәтижелік түр коды ретінде жалғыз n санын пайдалануға болады, мұндағы 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 функциясы жолды орнында өзгерте алады. «Мәтін_түр» аргументі ретінде "1FMM" мәнін пайдаланып, функцияны void деп жариялаңыз.

Microsoft Excel 4.0 нұсқасынан бұрынғы бағдарламаларда бірінші аргументті орнында өзгерту үшін > таңбасы пайдаланылатын және біріншіден басқа ешқандай аргументті өзгертудің жолы жоқ болатын. > таңбасы Microsoft Excel 4.0 және одан кейінгі нұсқаларындағы n = 1 мәнімен барабар.

Беттің жоғары бөлігі

Дағдыларды жетілдіру
Оқыту курсымен танысыңыз
Жаңа мүмкіндіктерге бірінші болып қол жеткізу
Office Insider бағдарламасына қосылу

Осы ақпарат пайдалы болды ма?

Пікіріңіз үшін рақмет!

Пікіріңізге рақмет! Сізді Office қолдау көрсету қызметіндегі агенттердің бірімен байланыстырған жөн болуы мүмкін.

×