Korištenje funkcija CALL i REGISTER

Važno : Oprez    Neispravno uređivanje registra može ozbiljno našetiti vašem operacijskom sustavu i zahtijevati ponovnu instalaciju. Microsoft ne može jamčiti rješavanje problema koji mogu nastati zbog neispravnog uređivanja registra. Prije uređivanja registra izradite sigurnosne kopije vrijednih podataka. Najažurnije informacije o korištenju i zaštiti registra računala potražite u pomoći za sustav Microsoft Windows.

U ovom su članku opisani sintaksa formule i način korištenja funkcija CALL, REGISTER i REGISTER.ID u programu Microsoft Excel.

Napomena :  Funkcije CALL i REGISTER nisu dostupne u web-aplikaciji Excel Online.

Sadržaj članka

Opis

Vrste podataka

Napomene

Dodatne informacije o vrstama podataka

Vrste podataka F i G

Vrsta podataka K

Vrsta podataka O

Vrsta podataka P

Vrsta podataka R – pozivanje funkcija programa Microsoft Excel iz DLL biblioteka

Promjenjive funkcije i ponovni izračun

Izmjena na mjestu – funkcije deklarirane kao ništetne

Opis

Sljedeći odlomci opisuju vrste podataka argumenata i vraćenih vrijednosti koje koriste funkcije CALL, REGISTER i REGISTER.ID. Argumenti i vraćene vrijednosti malo se razlikuju ovisno o radnom okruženju, a te su razlike zabilježene tablici vrste podataka CALL, REGISTER i REGISTER.ID.

Vrh stranice

Vrste podataka

U funkcijama CALL, REGISTER i REGISTER.ID argument type_text određuje vrstu podataka vraćene vrijednosti i vrste podataka svih argumenata DLL funkcije ili resursa koda. Prvi znak argumenta type_text određuje vrstu podatka vraćene vrijednosti. Ostali znakovi upućuju na vrste podataka svih argumenata. Npr. DLL funkcija koja vraća broj s pomičnim zarezom te uzima cijeli broj i broj s pomičnim zarezom kao argumente zahtijeva argument type_text "BIB".

Sljedeća tablica sadrži potpuni popis kôdova vrsta podataka koje Microsoft Excel prepoznaje, opis svih vrsta podataka, način na koji se prosljeđuje argument ili vraćena vrijednost i tipičnu deklaraciju vrste podatka u programskom jeziku C.

Kôd

Opis

Način prosljeđivanja

C deklaracija

A

Logički
(FALSE = 0), TRUE = 1)

Vrijednost

short int

B

IEEE 8-bajtni broj s pomičnom točkom

vrijednost
(Windows)

referenca (Macintosh)

double
(Windows)

double * (Macintosh)

C

Niz znakova zaključen nul-znakom (najveća duljina niza znakova = 255)

referenca

char *

D

Niz znakova definiran znakovima (prvi bajt sadrži duljinu niza znakova, najveća duljina niza = 255)

referenca

Unsigned char *

E

IEEE 8-bajtni broj s pomičnom točkom

referenca

double *

F

Niz znakova zaključen nul-znakom (najveća duljina niza znakova = 255)

referenca (promjena na mjestu)

char *

G

Niz znakova definiran znakovima (prvi bajt sadrži duljinu niza znakova, najveća duljina niza = 255)

referenca (promjena na mjestu)

unsigned char *

H

2-bajtni cijeli broj bez predznaka

Vrijednost

unsigned short int

I

2-bajtni cijeli broj s predznakom

Vrijednost

short int

J

4-bajtni cijeli broj s predznakom

Vrijednost

long int

K

Polje

referenca

FP *

L

Logički
(FALSE = 0, TRUE = 1)

referenca

short int *

M

2-bajtni cijeli broj s predznakom

referenca

short int *

N

4-bajtni cijeli broj s predznakom

referenca

long int *

O

Polje

referenca

Prosljeđuju se tri argumenta:
unsigned short int *
unsigned short int *
double [ ]

P

Microsoft Excel OPER struktura podataka

referenca

OPER *

R

Microsoft Excel XLOPER struktura podataka

referenca

XLOPER *

Vrh stranice

Napomene

  • Deklaracije jezika C temeljene su na pretpostavci da vaš prevoditelj (compiler) zadano radi sa 8-bajtnim brojevima dvostruke preciznosti, 2-bajtnim kratkim cijelim brojevima (short integers) i 4- bajtnim dugim cijelim brojevima (long integers).

  • U programskom okruženju sustava Microsoft Windows svi su pokazivači daleki (far pointers). Na primjer, u sustavu Microsoft Windows morate deklarirati šifru vrste podatka D kao unsigned char far * .

  • Sve funkcije u DLL bibliotekama i resursima koda pozivaju se pomoću konvencije o načinu pozivanja u Pascalu (Pascal calling convention). Gotovo svi C kompilatori dopuštaju korištenje konvencije o načinu pozivanja u Pascalu dodavanjem ključne riječi Pascal u deklaraciju funkcije, kao što je prikazano u sljedećem primjeru pascal void main (rows,columns,a)

  • Ako funkcija za vraćenu vrijednost koristi vrstu podatka koja se prosljeđuje referencom (pass-by-reference), kao vraćenu vrijednost možete proslijediti nul-pokazivač. Microsoft Excel će nul-pokazivač interpretirati kao pogrešku #NUM!.

Vrh stranice

Dodatne informacije o vrstama podataka

Ova sekcija sadrži detaljne informacije o F, G, K, O, P i R vrstama podataka i druge informacije o argumentu type_text.

Vrste podataka F i G

Pomoću F i G vrsta podataka funkcija može promijeniti međuspremnik niza (string buffer) kojeg je dodijelio Microsoft Excel. Ako je kôd vrste vraćene vrijednosti F ili G, tada Microsoft Excel zanemaruje vrijednost koju funkcija vraća. Umjesto toga, Microsoft Excel pretražuje popis argumenata funkcije i traži prvu odgovarajuću vrstu podatka (F ili G), a zatim uzima trenutni sadržaj dodijeljenog međuspremnika niza (allocated string buffer) kao vraćenu vrijednost. Microsoft Excel dodjeljuje 256 bajtova za argument, pa funkcija može vratiti niz koji je dulji od primljenog.

Vrh stranice

Vrsta podataka K

K vrsta podataka koristi pokazivač na FP strukturu promjenjive veličine. Morate definirati tu strukturu u DLL biblioteci ili u resursima kôda kao što slijedi:

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

Deklaracija double array[1] dodjeljuje mjesto za spremanje polja od jednog elementa. Broj elemenata u stvarnom polju jednak je broju redaka pomnoženom s brojem stupaca.

Vrh stranice

Vrsta podataka O

O vrsta podataka može se koristiti samo kao argument, ne kao vraćena vrijednost. Ona prosljeđuje tri stavke: pokazivač na broj redaka u polju, pokazivač na broj stupaca u polju i pokazivač na dvodimenzionalno polje brojeva s pomičnom točkom.

Umjesto vraćanja vrijednosti, funkcija može promijeniti polje proslijeđeno O vrstom podataka. Želite li to napraviti, možete koristiti ">O" kao argument tekst_vrste. Za više informacija pogledajte odlomak ispod: "Promjena na mjestu — funkcije deklarirane kao Void".

O vrsta podataka stvorena je zbog direktne kompatibilnosti s Fortran DLL bibliotekama, koje prosljeđuju argumente referencom.

Vrh stranice

Vrsta podataka P

P vrsta podataka je pokazivač na OPER strukturu. OPER struktura sadrži 8 bajtova podataka iza kojih slijedi 2-bajtni identifikator koji određuje vrstu podataka. Pomoću P vrste podataka, DLL funkcija ili resurs kôda mogu primiti i vratiti bilo koju vrstu podataka Microsoft Excela.

OPER struktura definirana je kao što slijedi:

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;

Polje vrsta sadrži jednu od ovih vrijednosti.

Vrsta

Opis

Val polje za korištenje

1

Brojčani

num

2

Niz znakova (prvi bajt sadrži duljinu niza znakova)

str

4

Boole-ov (logički)

bool

16

Pogreška: vrijednosti pogreške su:

0#NULL!

7#DIV/0!

15#VALUE!

23#REF!

29#NAME?

36#NUM!

42#N/A

err

64

Polje

polje

128

Nedostajući argument

256

Prazna ćelija

Posljednje dvije vrijednosti mogu se koristiti samo kao argumenti, ne i kao prikazane vrijednosti. Nedostajuća vrijednost argumenta (128) prosljeđuje se kada pozivatelj ne navede argument. Vrijednost prazne ćelije (256) prosljeđuje se kada pozivatelj proslijedi referencu prema praznoj ćeliji.

Vrh stranice

Vrsta podataka R – pozivanje funkcija programa Microsoft Excel iz DLL biblioteka

R vrsta podataka ukazuje na strukturu XLOPER, što je unaprijeđena verzija strukture OPER. U Microsoft Excelu verzije 4.0 i starijim možete koristiti R vrstu podataka za pisanje DLLova i kodnih resursa koji pozivaju funkcije Microsoft Excela. Pomoću strukture XLOPER, funkcija DLL može proslijediti reference lista i implementirati kontrolu toka, pored prosljeđivanja podataka. Potpuni opis R vrste podataka i sučelja za programiranje aplikacija (API) Microsoft Excela preopširan je za ovu temu. Microsoft Office XP Developer's Guide sadrži detaljne informacije o R vrsti podataka, o Microsoft Excel API i mnogim drugim tehničkim aspektima Microsoft Excela.

Vrh stranice

Promjenjive funkcije i ponovni izračun

Microsoft Excel obično izračunava DLL funkciju (ili resurs kda) samo kad se oni unesu u ćeliju, kad se jedan od njihovih prethodnika promijeni ili kad se ćelija izračunava za vrijeme makronaredbe. Na radnom listu, možete proglasiti DLL funkciju ili resurs kôda promjenjivom (volatile), što znači da se ponovno izračunava svaki put kad se radni list ponovno izračunava. Ako želite da funkcija bude promjenjiva, dodajte uskličnik (!) kao zadnji znak argumenta type_text.

Na primjer, u programima Microsoft Excel za Windows, sljedeća formula radnog lista ponovno se izračunava svaki put kad se radni list ponovno izračunava:

CALL("Jezgra32","DohvatiBrojSignala","J!")

Vrh stranice

Izmjena na mjestu – funkcije deklarirane kao ništetne

Možete koristiti jednu znamenku n za kôd vrste vraćene vrijednosti u type_text, gdje je n broj od 1 do 9. Ovo govori Microsoft Excelu da promijeni varijablu na lokaciji na koju pokazuje n-ti argument u type_text, umjesto da vraća vrijednost. Ovaj postupak zove se promjena na mjestu. N-ti argument mora imati vrstu podatka koja se prosljeđuje referencom (C, D, E, F, G, K, L, M, N, O, P ili R). DLL funkcija ili resurs kda moraju također biti deklarirani uz korištenje ključne riječi void u programskom jeziku C (ili uz korištenje ključne riječi procedure u programskom jeziku Pascal).

Na primjer, DLL funkcija koja kao argumente uzima niz znakova zaključen nul-znakom i dva pokazivača na cijele brojeve, može na mjestu promijeniti niz znakova. Koristite "1FMM" kao argument type_text i deklarirajte funkciju kao void.

Verzije ranije od Microsoft Excel 4.0 koristile su znak > za promjenu prvog argumenta na mjestu; nije bilo načina za promjenu bilo kojeg drugog argumenta osim prvog. Znak > ekvivalentan je n = 1 u programu Microsoft Excel verzija 4.0 ili novija.

Vrh stranice

Proširite svoje vještine
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×