Office
Conectare

Utilizarea funcțiilor CALL și REGISTER

Important: Atenție    Editarea incorectă a registry poate deteriora serios sistemul de operare, impunând reinstalarea lui. Microsoft nu poate garanta că se pot rezolva problemele rezultate din editările incorecte din registry. Înainte să efectuați editări în registry, creați copii de rezervă pentru toate datele importante. Pentru cele mai recente informații privind utilizarea și protejarea registry-ului computerului, consultați Ajutorul Microsoft Windows.

Acest articol descrie sintaxa formulei și modul de utilizare a funcțiilor CALL, REGISTER și REGISTER.ID în Microsoft Excel.

Notă:  Funcțiile CALL și REGISTER nu sunt disponibile în Excel Online.

În acest articol

Descriere

Tipuri de date

Observații

Informații despre tipurile de date suplimentare

Tipurile de date F și G

Tipul de date K

Tipul de date O

Tipul de date P

Tipul de date R - Apelarea funcțiilor Microsoft Excel din bibliotecile DLL

Funcții volatile și recalculări

Modificare pe loc - Funcții declarate ca Void

Descriere

În cele ce urmează sunt descrise tipurile de date ale argumentelor și valorilor returnate de funcțiile CALL, REGISTER și REGISTER.ID. Argumentele și valorile returnate diferă net în funcție de mediul de operare și aceste diferențe sunt notate în tabelul de tipuri de date.

Începutul paginii

Tipuri de date

În funcțiile CALL, REGISTER și REGISTER.ID, argumentul type_text specifică tipul de dată al valorii returnate și tipurile de date pentru toate argumentele funcției DLL sau resursei de cod. Primul caracter din type_text indică tipul de dată al valorii returnate. Restul caracterelor indică tipurile de date ale tuturor argumentelor. De exemplu, o funcție DLL care returnează un număr cu format în virgulă flotantă și primește drept argumente un întreg și un număr în virgulă flotantă, va necesita expresia "BIB" pentru argumentul type_text.

Tabelul următor conține o listă completă a codurilor tipurilor de date recunoscute de Microsoft Excel, o descriere a fiecărui tip de dată, modul cum sunt transferate argumentul și valoarea returnată și o declarare tipică pentru tipul de dată în limbajul de programare C.

Cod

Descriere

Mod de transfer

Declarare în C

A

Logic
(FALSE = 0), TRUE = 1)

Valoare

short int

B

Număr în virgulă flotantă IEEE 8-byte

Valoare
(Windows)

Referință (Macintosh)

double
(Windows)

double * (Macintosh)

C

Șir null-terminated (lungime maximă șir = 255)

Referință

char *

D

Șir byte-counted (primul byte conține lungimea șirului, lungime maximă șir = 255 caractere)

Referință

Unsigned char *

E

Număr în virgulă flotantă IEEE 8-byte

Referință

double *

F

Șir null-terminated (lungime maximă șir = 255 caractere)

Referință (modifică pe loc)

char *

G

Șir byte-counted (primul byte conține lungimea șirului, lungime maximă șir = 255 caractere)

Referință (modifică pe loc)

unsigned char *

H

Întreg 2-byte fără semn

Valoare

unsigned short int

I

Întreg 2-byte cu semn

Valoare

short int

J

Întreg 4-byte cu semn

Valoare

long int

K

Matrice

Referință

FP *

L

Logic
(FALSE = 0, TRUE = 1)

Referință

short int *

M

Întreg 2-byte cu semn

Referință

short int *

N

Întreg 4-byte cu semn

Referință

long int *

O

Matrice

Referință

Trei argumente sunt transferate:
unsigned short int *
unsigned short int *
double [ ]

P

Structură de date Microsoft Excel OPER

Referință

OPER *

R

Structură de date Microsoft Excel XLOPER

Referință

XLOPER *

Începutul paginii

Observații

  • Declarațiile din limbajul C se bazează pe prezumția că compilatorul dvs. implică formatele de întreg dublu 8-byte, întreg scurt 2-byte și întreg lung 4-byte.

  • În mediul de programare Microsoft Windows, toate indicatoarele sunt pointeri far. De exemplu, codul tipului de dată D va trebui declarat ca unsigned char far * în Microsoft Windows.

  • Toate funcțiile din bibliotecile DLL și din resursele de cod sunt apelate utilizându-se convenția de apelare Pascal. Majoritatea compilatoarelor C vă permit să utilizați convenția de apelare Pascal prin adăugarea la declarația funcției a cuvântului cheie Pascal, ca în exemplul următor: pascal void main (rows,columns,a)

  • Dacă o funcție utilizează pentru valoarea returnată un tip de dată cu transfer prin referință, se poate transfera un indicator nul ca valoare de retur. Microsoft Excel va interpreta indicatorul null ca pe valoarea de eroare #NUM!.

Începutul paginii

Informații despre tipuri de date suplimentare

Această secțiune conține informații detaliate despre tipurile de date F, G, K, O, P și R și alte informații despre argumentul type_text.

Tipuri de date F și G

Cu tipurile de date F și G, o funcție poate modifica buffer-ul alocat de Microsoft Excel unui șir. Dacă codul tipului de dată al valorii returnate este F sau G, atunci Microsoft Excel ignoră valoarea returnată de către funcție. Ca urmare, Microsoft Excel caută în lista argumentelor funcției până la primul tip de dată corespunzător (F sau G), apoi preia drept valoare returnată conținutul buffer-ului alocat pentru șir. Microsoft Excel alocă 256 byți pentru argument, astfel încât funcția poate returna un șir mai lung decât cel primit.

Începutul paginii

Tipul de dată K

Tipul de dată K utilizează un indicator spre o structură de mărime variabilă FP. Trebuie să definiți această structură în biblioteca DLL sau în resursa de cod, după cum urmează:

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

Declarația double array[1] alocă memorie numai pentru o matrice cu un singur element. Numărul de elemente din matricea actuală este egal cu numărul de linii înmulțit cu numărul de coloane.

Începutul paginii

Tip de dată O

Tipul de dată O poate fi utilizat numai ca un argument, nu și ca valoare returnată. El transferă trei elemente: un indicator spre numărul de linii dintr-o matrice, un indicator spre numărul de coloane din matrice și un indicator spre o matrice bi-dimensională sau spre numere în virgulă flotantă.

În loc să întoarcă o valoare, o funcție poate modifica o matrice transferată prin intermediul tipului de dată O. Pentru a face aceasta, puteți utiliza ca tip de argument expresia „>O”. Pentru mai multe informații, vedeți „Modificarea pe loc — Funcții declarate ca Void”, în cele ce urmează.

Tipul de dată O a fost creat pentru compatibilitate expresă cu bibliotecile DLL Fortran, care transferă argumente prin referințe.

Începutul paginii

Tip de dată P

Tipul de dată P este un indicator spre o structură OPER. Structura OPER conține 8 byți de date, urmați de un identificator de 2 byți care specifică tipul de dată. Cu un tip de dată P, o funcție DLL sau o resursă de cod poate prelua și întoarce orice tip de dată Microsoft Excel.

Structura de date OPER este definită după cum urmează:

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;

Câmpul type conține una dintre aceste valori.

Tip

Descriere

Câmpul Val utilizat

1

Numeric

num

2

String (primul octet conține lungimea șirului)

str

4

Boolean (logic)

bool

16

Eroare: valorile de eroare sunt:

0#NULL!

7#DIV/0!

15#Value!

23#REF!

29#NAME?

36#NUM!

42#N/A

err

64

Matrice

array

128

Argument lipsă

256

Celulă goală

Ultimele două valori pot fi utilizate numai ca argumente, nu și ca valori returnate. Valoarea pentru argument lipsă (128) este transferată atunci când apelantul omite un argument. Valoarea de celulă goală (256) este transferată atunci când apelantul transferă o referință pentru o celulă goală.

Începutul paginii

Tip de dată R — Apelarea funcțiilor Microsoft Excel din bibliotecile DLL

Tipul de dată R este un indicator spre o structură XLOPER, care este o versiune îmbunătățită a structurii OPER. În Microsoft Excel versiunile 4.0 și mai recente, puteți utiliza tipuri de date R pentru a scrie biblioteci DLL și resurse de cod care apelează funcții Microsoft Excel. Cu structura XLOPER, o funcție DLL poate transfera referințe de foaie și implementa control flux pe lângă transferul de date. O descriere completă a tipului de dată R și a interfeței programelor de aplicație Microsoft Excel (application programming interface -API) este mai presus de scopul acestui subiect. Microsoft Office XP Developer's Guide conține informații detaliate despre tipul de dată R, Microsoft Excel API și multe alte aspecte tehnice ale Microsoft Excel.

Începutul paginii

Funcții volatile și recalculări

Microsoft Excel calculează de obicei o funcție DLL (sau o resursă de cod) numai atunci când este introdusă într-o celulă, când una dintre precedentele sale se modifică sau când celula este calculată în timpul unei macrocomenzi. Într-o foaie de calcul, puteți face o funcție DLL sau o resursă de cod volatile, adică să recalculeze de fiecare dată când foaia de calcul este recalculată. Pentru a face o funcție volatilă, adăugați un semn de exclamație (!) ca ultim caracter în argumentul type_text.

De exemplu, în Microsoft Excel pentru Windows, următoarea formulă din foaia de calcul se recalculează de fiecare dată când foaia de calcul este recalculată:

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

Începutul paginii

Modificare pe loc — Funcții declarate ca Void

Puteți utiliza o singură cifră n pentru codul tipului valorii returnate din type_text, unde n este un număr de la 1 la 9. Aceasta îi spune lui Microsoft Excel să modifice variabila din adresa indicată cu al n-lea argument din type_text, în loc să întoarcă o valoare. Acest lucru mai este cunoscut ca modificare în loc. Al n-lea argument trebuie să fie de tipul transfer-prin-referință și anume C, D, E, F, G, K, L, M, N, O, P sau R. Funcția DLL sau resursa de cod trebuie de asemenea să fie declarate cu cuvântul cheie void în limbajul C (sau procedura cheie din limbajul Pascal).

De exemplu, o funcție DLL care primește drept argumente un șir null-terminated și doi indicatori spre întregi, poate modifica șirul în loc. Utilizați "1FMM" ca argument type_text și declarați funcția ca void.

Versiunile anterioare lui Microsoft Excel 4.0 foloseau caracterul > pentru modificarea primului argument în loc; nu exista nicio posibilitate de a modifica un alt argument în afară de primul. Caracterul > este echivalent cu n = 1 din Microsoft Excel versiunile 4.0 și ulterioare.

Începutul paginii

Extindeți-vă competențele Office
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×