Pomembno: Pozor Nepravilno urejanje registra lahko tako resno poškoduje operacijski sistem, da ga boste morali znova namestiti. Microsoft ne more zagotoviti, da je mogoče odpraviti težave, ki so posledica nepravilnega urejanja registra. Pred urejanjem registra ustvarite varnostno kopijo pomembnih podatkov. Če si želite ogledati najnovejše informacije o uporabi in zaščiti registra, si oglejte pomoč za Microsoft Windows.
V tem članku je opisana sintaksa formule in uporaba funkcij CALL, REGISTER in REGISTER.ID v Microsoft Excelu.
Opomba: Funkciji CALL in REGISTER v sistemu Excel za splet.
V tem članku
Opis
V tem besedilu so opisani argumenti in tipi podatkov vrnjenih vrednosti funkcij CALL, REGISTER in REGISTER.ID. Argumenti in vrnjene vrednosti se v različnih operacijskih okoljih rahlo razlikujejo, kar je označeno v tabeli podatkovnih tipov.
Tipi podatkov
V funkcijah CALL, REGISTER in REGISTER.ID argument »text_type« določa podatkovni tip vrnjenih vrednosti in vseh argumentov funkcije DLL ali sredstva kode. Prvi znak argumenta »text_type« določa podatkovni tip vrnjene vrednosti. Drugi znaki označujejo podatkovne tipe vseh argumentov. Za funkcijo DLL, ki vrne število s plavajočo vejico in uporablja cela števila in števila s plavajočo vejico kot argumente, bi bil na primer obvezen niz »BIB« za argument »type_text«.
Naslednja tabela vsebuje popoln seznam tipov podatkov, ki jih Microsoft Excel prepozna; opis vsakega od teh tipov; način, kako funkcija podaja (izmenjuje z okoljem) argument ali vrnjeno vrednost; in značilno deklaracijo za podatkovni tip v programskem jeziku C.
Koda |
Opis |
Podano |
deklaracija C |
A |
Logična vrednost (FALSE = 0), TRUE = 1) |
Vrednost |
short int |
B |
IEEE 8-bajtno število s plavajočo vejico |
z vrednostjo (Windows)s sklicem (Macintosh) |
double (Windows)double * (Macintosh) |
C |
niz z ničelno (NULL) zaključitvijo (največja dolžina niza = 255) |
s sklicem |
char * |
D |
bajtno štet niz (prvi bajt vsebuje dolžino niza, največja dolžina niza = 255 znakov) |
s sklicem |
unsigned char * |
E |
IEEE 8-bajtno število s plavajočo vejico |
s sklicem |
double * |
F |
niz z ničelno (NULL) zaključitvijo (največja dolžina niza = 255 znakov) |
s sklicem (prilagodi na mestu) |
char * |
G |
bajtno štet niz (prvi bajt vsebuje dolžino niza, največja dolžina niza = 255 znakov) |
s sklicem (prilagodi na mestu) |
unsigned char * |
H |
2-bajtno celo število brez predznaka |
Vrednost |
unsigned short int |
I |
2-bajtno celo število s predznakom |
Vrednost |
short int |
J |
4-bajtno celo število s predznakom |
Vrednost |
long int |
K |
matrika |
s sklicem |
FP * |
L |
logična vrednost (FALSE = 0, TRUE = 1) |
s sklicem |
short int * |
M |
2-bajtno celo število s predznakom |
s sklicem |
short int * |
N |
4-bajtno celo število s predznakom |
s sklicem |
long int * |
O |
matrika |
s sklicem |
funkcija poda tri argumente: unsigned short int * unsigned short int * double [ ] |
P |
Microsoft Excelova OPER podatkovna zgradba |
s sklicem |
OPER * |
R |
Microsoft Excelova XLOPER podatkovna zgradba |
s sklicem |
XLOPER * |
Opombe
-
Izjave (deklaracije) v jeziku C temeljijo na predpostavki, da so privzete nastavitve vašega prevajalnika: 8-bajtna dvojna (double) realna števila, 2-bajtna kratka (short) cela števila in 4-bajtna dolga (long) cela števila.
-
V programskem okolju Microsoft Windows so vsi kazalci dolgi (far). Podatkovno kodo vrste D morate na primer v sistemu Microsoft Windows prijaviti kot unsigned char far *.
-
Vse funkcije v knjižnicah DLL in sredstvih kode kliče program po pascalskih določilih za klicanje. Večina prevajalnikov C vam omogoča klicanje na pascalski način, tako da dodate ključno besedo »Pascal« v prijavo funkcije, na primer: pascal void main (rows,columns,a)
-
Če funkcija za vrnjeno vrednost uporablja podatkovni tip, ki se podaja s sklicevanjem, lahko kot vrnjeno vrednost podate ničelni kazalec. Microsoft Excel bo kazalec »null« tolmačil kot #NUM! .
Dodatne informacije o podatkovnih tipih
Ta odsek vsebuje podrobne informacije o podatkovnih tipih F, G, K, O, P in R in druge informacije o argumentu text_type.
Podatkovna tipa F in G
S podatkovnima tipoma F in G lahko funkcija spremeni medpomnilnik niza (string buffer), ki ga dodeli Microsoft Excel. Če je vrnjena vrednost tipa F ali G, Microsoft Excel prezre vrednost, ki jo vrne funkcija. Namesto tega poišče Microsoft Excel na seznamu argumentov funkcije prvi ustrezni podatkovni tip (F ali G) in privzame trenutno vsebino dodeljenega medpomnilnik niza kot vrnjeno vrednost. Microsoft Excel dodeli 256 bajtov za argument, tako da lahko funkcija vrne daljši niz od tistega, ki ga je prejela.
Podatkovni tip K
Podatkovni tip K uporablja kazalec na FP zgradbo s spremenljivo velikostjo. To zgradbo morate določiti v DLL-u ali sredstvu kode kot:
typedef struct _FP
{ unsigned short int rows; unsigned short int columns; double array[1]; /* Actually, array[rows][columns] */ } FP;
S prijavo double array[1] dodelite pomnilniški prostor samo za matriko z enojnim elementom. Število elementov v dejanski matriki je enako številu vrstic, pomnoženo s številom stolpcev.
Podatkovni tip O
Podatkovni tip O lahko uporabljate samo kot argument in ne kot vrnjeno vrednost. Ta tip podaja tri elemente: kazalec na število vrstic v matriki, kazalec na število stolpcev v matriki in kazalec na dvorazsežno matriko s števili s plavajočo vejico.
Namesto da vrne vrednost, lahko funkcija spremeni matriko, ki jo poda podatkovni tip O. To naredite tako, da za argument >O uporabite type_text O. Če želite več informacij, glejte »Spreminjanje na mestu – funkcije, deklarirane kot nične« spodaj.
Podatkovni tip O je Microsoft ustvaril, da bi zagotovil neposredno združljivost s Fortranovimi knjižnicami, ki podajajo argumente s sklici.
Podatkovni tip P
Podatkovni tip P je kazalec na zgradbo OPER. Ta zgradba vsebuje 8 bajtov podatkov, ki jim sledi 2-bajtni označevalnik, ki določa tip podatka. Pri podatkovnem tipu P lahko DLL-funkcija ali sredstvo kode prejme in vrne kateri koli Microsoft Excelov podatkovni tip.
Zgradba OPER je določena takole:
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 » type« vsebuje eno od teh vrednosti:
Tip |
Opis |
Polje »val«, ki ga uporabite |
1 |
Števila |
num |
2 |
niz (prvi bajt vsebuje dolžino niza) |
str |
4 |
Boolov (logično) |
bool |
16 |
napaka; vrednosti napak so: 0#NULL! 7#DIV/0! 15#Value! 23#REF! 29#INAME? 36#NUM! 42#N/A |
err |
64 |
matrika |
array |
128 |
manjkajoči argument |
|
256 |
prazna celica |
Zadnji dve vrednosti lahko uporabljate zgolj kot argument in ne kot vrnjeno vrednosti. Program poda manjkajočo vrednost argumenta (128), ko klicatelj izpusti argument. Program pa poda manjkajočo vrednost argumenta (256), ko klicatelj poda sklic na prazno celico.
Podatkovni tip R – klicanje funkcij Microsoft Excela iz knjižnic DLL
Podatkovni tip R je kazalec na zgradbo XLOPER, ki je dodelana različica zgradbe OPER. V Microsoft Excelu različica 4.0 in v novejših različicah lahko uporabljate podatkovni tip R, da bi pisali DLL-e in sredstva kode, ki kličejo funkcije Microsoft Excela. Z zgradbo XLOPER lahko funkcija DLL, poleg podajanja podatkov podaja tudi sklice na delovni list in upravlja podatkovni tok. Žal v tej temi ni dovolj prostora za celovit opis podatkovnega tipa R in vmesnika za programiranje (API – application programming interface) Microsoft Excela. Zbirka pripomočkov Microsoft Office XP Developer's Guide vsebuje podrobne informacije o podatkovnem tipu R, o API-ju Microsoft Excela in o mnogih drugih tehničnih vidikih Microsoft Excela.
Spremenljive funkcije in ponovno računanje
Microsoft Excel običajno računa DLL-funkcijo (ali sredstvo kode), ko jo vnesete v celico, ko se ena od predhodnic celice spremeni ali ko makro preračuna celico. Na delovnem listu lahko naredite DLL-funkcijo in sredstvo kode občutljivo (volatile), kar pomeni, da ju program ponovno izračuna vsakič, ko izračuna delovni list. Da bi naredili funkcijo občutljivo, dodajte klicaj (!) na konec argumenta text_type.
Naslednja formula za delovni list se na primer v Microsoft Excelu za Windows izračuna vsakič skupaj z delovnim listom:
CALL("Kernel32","GetTickCount","J!")
Spreminjanje na mestu – funkcije, deklarirane kot prazne (Void)
Za kodo vrnjene vrednosti lahko v argumentu text_type uporabite enojno števko n, ki je število 1 do 9. To pove Microsoft Excelu, naj namesto tega, da funkcija vrne vrednost, spremeni spremenljivko, na mesto katere kaže n-ti argument text_type. To je znano tudi kot »spreminjanje na mestu«. N-ti argument mora biti podatkovni tip, ki je podan s sklicevanjem (C, D, E, F, G, K, L, M, N, O, P ali R). DLL funkcija ali sredstvo kode mora biti deklarirana s ključno besedo »void« v jeziku C (ali s ključno besedo »procedure« v jeziku Pascal).
Na primer, DLL funkcija, ki uporablja ničelno zaključen (null-terminated) niz in dva kazalca na cela števila kot argumenta, lahko na mestu spremeni niz. Uporabite »1FMM« kot argument text_type in napovejte funkcijo kot »void«.
Predhodne različice programa Microsoft Excel 4.0 so uporabljale znak »>«, da bi na mestu spremenjale niz -- dalo se je spreminjati samo prvi argument in nobenega drugega. Znak »>« pa je enakovreden n = 1 v Microsoft Excelu različica 4.0 in v novejših različicah.