Korišćenje funkcija CALL i REGISTER

Važno: Oprez    Neispravno uređivanje registratora može ozbiljno da ošteti operativni sistem tako da morate da ga ponovo instalirate. Microsoft ne garantuje da je moguće rešiti probleme nastale usled neispravnog uređivanja registratora. Pre uređivanja registratora napravite rezervnu kopiju svih vrednih podataka. Najnovije informacije o korišćenju i zaštiti registratora računara potražite u pomoći za Microsoft Windows.

Ovaj članak opisuje sintaksu formule i upotrebu funkcija CALL, REGISTER i REGISTER.ID u programu Microsoft Excel.

Napomena:  Funkcije CALL i REGISTER nisu dostupne u programu Excel Online.

U ovom članku

Opis

Tipovi podataka

Primedbe

Dodatne informacije o tipovima podataka

Tipovi podataka F i G

Tip podataka K

Tip podataka O

Tip podataka P

Tip podataka R – poziv funkcija programa Microsoft Excel iz DLL-ova

Nepostojane funkcije i ponovno računanje

Izmene na nekom mestu – funkcije deklarisane kao „void“

Opis

Sledi opis tipova podataka argumenta i vrednosti koje daju funkcije CALL, REGISTER i REGISTER.ID. Argumenti i dobijene vrednosti, razlikuju se u zavisnosti od operativnog okruženja, a ove razlike su navedene u tabeli tipova podataka.

Vrh stranice

Tipovi podataka

U funkcijama CALL, REGISTER i REGISTER.ID argument type_text precizira tip podataka dobijene vrednosti ili tipove podataka svih argumenata za DLL funkcije ili programski resurs. Prvi znak argumenta type_text precizira tip podataka vrednosti koja se dobija. Preostali znakovi pokazuju tipove svih argumenata. Na primer, DLL funkcija koja daje broj sa pokretnim zarezom i prihvata argumente tipa ceo broj i broj sa pokretnim zarezom, zahtevala bi oznaku „BIB“ za argument type_text.

Tabela koja sledi, sadrži potpunu listu kodova za tipove podataka koje Microsoft Excel prepoznaje, opis svakog tipa podataka, opis načina na koji se prosleđuje argument ili dobijena vrednost, kao i deklaraciju tipa podataka uobičajenu za programski jezik C.

Kôd

Opis

Prenos

Deklaracija u jeziku C

A

Logička vrednost
(FALSE = 0, TRUE = 1)

po vrednosti

short int

B

8-bajtni IEEE broj sa pokretnim zarezom

po vrednosti
(Windows)

po referenci (Macintosh)

double
(Windows)

double * (Macintosh)

C

Niska koja se završava nulom (maksimalna dužina niske = 255)

po referenci

char *

D

Po bajtu izračunata niska (prvi bajt sadrži dužinu niske, maksimalna dužina niske = 255 znakova)

po referenci

Unsigned char *

E

8-bajtni IEEE broj sa pokretnim zarezom

po referenci

double *

F

Niska koja se završava nulom (maksimalna dužina niske = 255 znakova)

po referenci (prilagođen adresi)

char *

G

Po bajtu izračunata niska (prvi bajt sadrži dužinu niske, maksimalna dužina niske = 255 znakova)

po referenci (prilagođen adresi)

unsigned char *

H

Neoznačen 2-bajtni ceo broj

po vrednosti

unsigned short int

I

Označen 2-bajtni ceo broj

po vrednosti

short int

J

Označen 4-bajtni ceo broj

po vrednosti

long int

K

Niz

po referenci

FP *

L

Logička vrednost
(FALSE = 0, TRUE = 1)

po referenci

short int *

M

Označen 2-bajtni ceo broj

po referenci

short int *

N

Označen 4-bajtni ceo broj

po referenci

long int *

O

Niz

po referenci

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

P

Struktura podataka OPER programa Microsoft Excel

po referenci

OPER *

R

Struktura podataka XLOPER programa Microsoft Excel

po referenci

XLOPER *

Vrh stranice

Primedbe

  • Deklaracije programskog jezika C zasnivaju se na pretpostavci da je za vaš prevodilac podrazumevana dužina realnih brojeva dvostruke preciznosti 8 bajtova, celih brojeva 2 bajta, a velikih celih brojeva 4 bajta.

  • U okruženju za programiranje operativnog sistema Microsoft Windows svi pokazivači su dalekosežni. Na primer, u operativnom sistemu Microsoft Windows morate da deklarišete kôd tipa podataka, koji je u tabeli u redu D, kao unsigned char far *.

  • Sve funkcije u DLL-ovima i programskim resursima pozivaju se po konvenciji pozivanja programskog jezika Pascal. Većina prevodilaca za programski jezik C dozvoljava korišćenje konvencije pozivanja programskog jezika Pascal tako što dodaje ključne reči tog jezika u deklaraciju funkcije, kao što je prikazano u sledećem primeru: pascal void main (rows,columns,a)

  • Ako funkcija daje vrednost čiji tip podataka zahteva da se prenosi po referenci, možete da prosledite null-pokazivač kao dobijenu vrednost. Microsoft Excel će interpretirati null-pokazivač kao grešku #NUM!.

Vrh stranice

Dodatne informacije o tipovima podataka

Ovaj odeljak sadrži detaljne informacije o tipovima podataka F, G, K, O, P i R, kao i druge informacije o argumentu type_text.

Tipovi podataka F i G

Sa tipovima podataka F i G funkcija može da izmeni međumemoriju koju je dodelio Microsoft Excel. Ako je kôd vrednosti koja se dobija F ili G, Microsoft Excel zanemaruje vrednost koju funkcija daje. Umesto toga, Microsoft Excel traži prvi odgovarajući tip podataka (F ili G) na listi argumenata funkcije, a zatim uzima trenutni sadržaj dodeljene međumemorije za vrednost koju će dati. Microsoft Excel dodeljuje 256 bajtova za argument, tako da funkcija može dati dužu nisku od one koju je primila.

Vrh stranice

Tip podataka K

Tip podataka K koristi pokazivač na strukturu promenljive veličine sa pokretnim zarezom (FP). Morate da definišete ovu strukturu u DLL-u ili programskom resursu, kao što sledi:

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

Deklaracija double array[1] dodeljuje memoriju samo jednočlanom nizu. Broj elemenata stvarnog niza jednak je broju redova pomnoženom sa brojem kolona.

Vrh stranice

Tip podataka O

Tip podataka O može da se koristi samo kao argument funkcije, a ne kao vrednost koja se dobija. Prosleđuje tri stavke: pokazivač na broj redova u nizu, pokazivač na broj kolona u nizu i pokazivač na dvodimenzionalni niz brojeva sa pokretnim zarezom.

Umesto da vrati vrednost, funkcija može da izmeni niz koji joj je prosledio tip podataka O. Za argument type_argument možete koristiti oznaku „>O“ da biste isprobali ovu mogućnost. Za više informacija, pogledajte tekst pod naslovom „Izmene na nekom mestu - funkcije deklarisane kao void“, koji sledi.

Tip podataka O je kreiran tako da je direktno kompatibilan sa DLL-ovima programskog jezika Fortran, koji prenose argumente po referenci.

Vrh stranice

Tip podataka P

Tip podataka P je pokazivač na strukturu OPER. Struktura OPER sadrži 8 bajtova podataka, koje sledi 2-bajtni identifikator koji određuje tip podataka. Funkcija iz DLL-a ili programskog resursa može sa podatkom tipa P da uzme i da bilo koji tip podataka programa Microsoft Excel.

Struktura OPER se definiše na sledeći način:

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 „Tip“ sadrži jednu od ovih vrednosti.

Tip

Opis

Dozvoljen tip polja

1

Numerički

num

2

Niska (prvi bajt sadrži dužinu niske)

str

4

Bulov (logički)

bool

16

Greška: greške su:

0#NULL!

7#DIV/0!

15#Value!

23#REF!

29#NAME?

36#NUM!

42#N/A

err

64

Niz

array

128

Argument koji nedostaje

256

Prazna ćelija

Poslednje dve vrednosti mogu da se koriste samo kao argumenti funkcije. Vrednost argumenta koji nedostaje (128) prosleđuje se kada se pri pozivu funkcije izostavi argument. Vrednost prazne ćelije (256) prosleđuje se kada se pri pozivu funkcije zada referenca na praznu ćeliju.

Vrh stranice

Tip podataka R – poziv funkcija programa Microsoft Excel iz DLL-ova

Tip podataka R je pokazivač na strukturu XLOPER, koja je veća verzija strukture OPER. U programu Microsoft Excel, verzija 4.0 ili kasnija, možete da koristite tip podataka R da biste pisali DLL-ove ili programske resurse koji pozivaju funkcije ovog programa. Uz pomoć strukture XLOPER funkcije DLL-a mogu da prosleđuju reference na listove i da primene dodatnu kontrolu toka pri prosleđivanju podataka. Potpun opis tipa podataka R i programskog interfejsa za aplikacije (API) programa Microsoft Excel je preobiman za ovu temu. Vodič za razvojne timove programu Microsoft Office XP sadrži detaljne informacije o tipu podataka R, API-ju programa Microsoft Excel i mnogim drugim tehničkim stranama programa Microsoft Excel.

Vrh stranice

Nepostojane funkcije i ponovno računanje

Microsoft Excel obično izračunava vrednost funkcije iz DLL-a (ili programskog resursa) samo onda kada je ona uneta u ćeliju, kada se izmeni sadržaj neke od prethodnih ćelija ili kada makro izračunava vrednost u ćeliji. U radnom listu možete da napravite nepostojanu funkciju iz DLL-a ili nepostojan programski resurs, što znači da će se ove vrednosti izračunavati svaki put kada se ponovno izračunava radni list. Dodajte znak uzvika (!) kao poslednji znak u argumentu type_text da biste funkciju učinili nepostojanom.

Na primer, u programu Microsoft Excel for Windows formula sledećeg radnog lista se izračunava svaki put kada se izračunava radni list:

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

Vrh stranice

Izmene na nekom mestu – funkcije deklarisane kao „void“

Možete upotrebiti jednu cifru n, to jest broj od 1 do 9, u argumentu type_argument, koja se odnosi na kôd tipa dobijene vrednosti. Ovim se saopštava programu Microsoft Excel da izmeni promenljivu na n-tom mestu, umesto da vrati vrednost. Postupak je poznat pod nazivom „Izmene na nekom mestu“. N-ti argument mora da bude onog tipa podataka koji može da se prosleđuje po referenci (C, D, E, F, G, K, L, M, N, O, P ili R). DLL funkcija ili programski resurs takođe moraju da budu deklarisani pomoću ključne reči „void“ u jeziku C (ili ključne reči „procedure“ u jeziku Pascal).

Na primer, funkcija iz DLL-a koja za argumente prihvata nisku koja se završava nulom i dva pokazivača na celobrojne vrednosti, može da izmeni nisku na nekom mestu. Upotrebite „1FMM“ kao argument type_text, a zatim deklarišite funkciju kao „void“.

Prethodna verzija programa Microsoft Excel 4.0 je koristila oznaku > za izmene prvog argumenta na nekom mestu; nema načina da se izmeni bilo koji drugi argument osim prvog. Oznaka > je ekvivalentna zapisu n = 1 u programu Microsoft Excel, verzija 4.0 ili kasnije.

Vrh stranice

Razvijte Office veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Office Insider korisnicima

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Zvuči da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×