Belangrijk: Let op Door foutieve bewerkingen van het register kan uw besturingssysteem ernstig beschadigd worden, waardoor u dit wellicht zelfs opnieuw moet installeren. Microsoft kan niet garanderen dat problemen die ontstaan door het bewerken van het register kunnen worden opgelost. Voordat u het register bewerkt, moet u dan ook een back-up maken van de waardevolle gegevens. Voor meer informatie over het gebruik en de beveiliging van het register op uw computer, raadpleegt u Help in Microsoft Windows.
In dit artikel worden de syntaxis en het gebruik van de functies ROEPEN, REGISTER en REGISTRATIE.ID in Microsoft Excel beschreven.
Opmerking: De functies CALL en REGISTER zijn niet beschikbaar in Excel voor het web.
In dit artikel
Beschrijving
Hieronder worden de gegevenstypen argument en retourwaarde beschreven die worden gebruikt door de functies CALL, REGISTER en REGISTER.ID . Argumenten en retourwaarden verschillen enigszins, afhankelijk van uw besturingsomgeving. Deze verschillen worden vermeld in de gegevenstypetabel.
Gegevenstypen
In de functies ROEPEN, REGISTER en REGISTRATIE.ID bepaalt het argument type_tekst het gegevenstype van de resulterende waarde en de gegevenstypen van alle argumenten in de DLL-functie of -codebron. Het eerste teken van type_tekst bepaalt het gegevenstype van de resulterende waarde. De overige tekens bepalen de gegevenstypen van alle argumenten. Als de DLL-functie bijvoorbeeld resulteert in een getal met een zwevende komma en een geheel getal en een getal met een zwevende komma als argumenten gebruikt, is voor het argument type_tekst "BIB" nodig.
De volgende tabel bevat een volledige lijst van de codes voor gegevenstypen die Microsoft Excel herkent, een beschrijving van elk gegevenstype, de manier waarop het argument of de resulterende waarde wordt doorgegeven en de gebruikelijke declaratie van het desbetreffende gegevenstype in de programmeertaal C.
Code |
Beschrijving |
Doorgeven als |
Declaratie in C |
A |
Logische waarde (ONWAAR = 0), WAAR = 1) |
Waarde |
short int |
B |
8 bytes groot IEEE getal met zwevende komma |
Waarde (Windows)Verwijzing (Macintosh) |
dubbel (Windows)dubbele * (Macintosh) |
C |
Tekenreeks met afsluitend nulteken (maximumlengte = 255) |
Verwijzing |
char * |
D |
Tekenreeks met byte-telling (de eerste byte bevat de lengte van de tekenreeks, maximumlengte = 255 tekens) |
Verwijzing |
unsigned char * |
E |
8 bytes groot IEEE getal met zwevende komma |
Verwijzing |
dubbele * |
F |
Tekenreeks met afsluitend nulteken (maximumlengte = 255 tekens) |
Verwijzing (aanpassen op positie) |
char * |
G |
Tekenreeks met byte-telling (de eerste byte bevat de lengte van de tekenreeks, maximumlengte = 255 tekens) |
Verwijzing (aanpassen op positie) |
unsigned char * |
H |
Geheel getal van 2 bytes zonder voorteken |
Waarde |
unsigned short int |
I |
Geheel getal van 2 bytes met voorteken |
Waarde |
short int |
J |
Geheel getal van 4 bytes met voorteken |
Waarde |
long int |
k |
Matrix |
Verwijzing |
FP * |
L |
Logische waarde (ONWAAR = 0, WAAR = 1) |
Verwijzing |
short int * |
m |
Geheel getal van 2 bytes met voorteken |
Verwijzing |
short int * |
N |
Geheel getal van 4 bytes met voorteken |
Verwijzing |
long int * |
O |
Matrix |
Verwijzing |
Drie argumenten worden doorgegeven: unsigned short int * unsigned short int * double [ ] |
P |
Microsoft Excel OPER-gegevensstructuur |
Verwijzing |
OPER * |
R |
Microsoft Excel XLOPER-gegevensstructuur |
Verwijzing |
XLOPER * |
Opmerkingen
-
De declaraties in de programmeertaal C gaan ervan uit dat uw compileerprogramma standaard gebruikmaakt van 8-byte doubles, 2-byte short integers en 4-byte long integers.
-
Alle pointers in de Microsoft Windows-programmeeromgeving zijn far pointers. In Microsoft Windows moet u bijvoorbeeld de gegevenstypecode D declareren als unsigned char far *.
-
Alle functies in DLL's en codebronnen worden opgeroepen met de oproepconventie van Pascal. Bij de meeste C-compileerprogramma's kunt u deze Pascal-conventie gebruiken door het trefwoord pascal toe te voegen aan de functiedeclaratie, zoals in het volgende voorbeeld: pascal void main (rows,columns,a)
-
Als een functie een pass-by-reference-gegevenstype gebruikt voor de retourwaarde, kunt u een null-aanwijzer doorgeven als de retourwaarde. Microsoft Excel interpreteert de null-aanwijzer als de #NUM! als resultaat.
Meer informatie over gegevenstypen
In deze sectie vindt u gedetailleerde informatie over de gegevenstypen F, G, K, O, P en R en informatie over het argument type_tekst.
De gegevenstypen F en G
Met de gegevenstypen F en G kan een functie een tekenreeksbuffer wijzigen die door Microsoft Excel is toegewezen. Als de resulterende waarde van het type F of G is, wordt het resultaat van de functie genegeerd. In plaats daarvan zoekt Microsoft Excel in de lijst met functie-argumenten naar het eerste geschikte gegevenstype (F of G) en neemt het programma vervolgens de actieve inhoud van de toegewezen tekenreeksbuffer als de resulterende waarde. Microsoft Excel wijst 256 bytes toe aan het argument, het is dus mogelijk dat de functie een grotere tekenreeks als resultaat geeft dan de reeks die u hebt ingevoerd.
Het gegevenstype K
Het gegevenstype K gebruikt een pointer naar een FP-structuur van variabele grootte. U moet deze structuur als volgt definiëren in de DLL of codebron:
typedef struct _FP
{ unsigned short int rows; unsigned short int columns; double array[1]; /* Actually, array[rows][columns] */ } FP;
De declaratie double array[1] wijst alleen opslagruimte toe aan een matrix met één element. Het aantal elementen in de werkelijke matrix is gelijk aan het aantal rijen vermenigvuldigd met het aantal kolommen.
Het gegevenstype O
Het gegevenstype O kan alleen als argument en niet als resulterende waarde worden gebruikt. Het geeft drie onderdelen door: een pointer voor het aantal rijen in een matrix, een pointer voor het aantal kolommen in een matrix en een pointer naar een tweedimensionale matrix bestaande uit getallen met zwevende komma.
In plaats van in een waarde te resulteren, kan een functie een matrix wijzigen die door het gegevenstype O is doorgegeven. U kunt hiertoe ">O" als het argument type_tekst opgeven. Zie 'Aanpassen op positie: functies met de instructie void' verderop in deze sectie voor meer informatie.
Het gegevenstype O is gemaakt voor directe compatibiliteit met Fortran DLL's, die als argumenten verwijzingen doorgeven.
Het gegevenstype P
Het gegevenstype P is een pointer naar een OPER-structuur. De OPER-structuur bevat 8 bytes met gegevens, gevolgd door een aanduiding van 2 bytes die het gegevenstype aangeeft. Met het gegevenstype P kan een DLL-functie of codebron elke gegevenstype van Microsoft Excel herkennen of als resultaat geven.
De OPER-structuur wordt als volgt gedefinieerd:
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;
Het typeveld bevat een van deze waarden:
Type |
Beschrijving |
Val-veld |
1 |
Numeriek |
getal |
2 |
Tekenreeks (eerste byte bevat de lengte van de reeks) |
reeks |
4 |
Booleaans (logische waarde) |
boole |
16 |
Fout; de foutwaarden zijn: 0#LEEG! 7#DEEL/0! 15#WAARDE! 23#VERW! 29#NAAM? 36#GETAL! 42#N/B |
fout |
64 |
Matrix |
matrix |
128 |
Ontbrekend argument |
|
256 |
Lege cel |
De laatste twee waarden kunnen alleen als argumenten worden gebruikt, niet als resulterende waarden. De waarde voor ontbrekend argument (128) wordt doorgegeven als bij het oproepen van de functie een argument wordt weggelaten. De waarde voor lege cel (256) wordt doorgegeven als bij het oproepen van de functie een verwijzing naar een lege cel wordt doorgegeven.
Gegevenstype R: Microsoft Excel-functies oproepen vanuit DLL-bestanden
Het gegevenstype R is een aanwijzer naar een XLOPER-structuur, een verbeterde versie van de OPER-structuur. In Microsoft Excel versie 4.0 en hoger kunt u het gegevenstype R gebruiken om DLL's en coderesources te schrijven die Microsoft Excel-functies aanroepen. Met de XLOPER-structuur kan een DLL-functie bladverwijzingen doorgeven en stroombeheer implementeren, naast het doorgeven van gegevens. Een volledige beschrijving van het R-gegevenstype en de Microsoft Excel Application Programming Interface (API) valt buiten het bereik van dit onderwerp. De Ontwikkelaarshandleiding voor Microsoft Office XP bevat gedetailleerde informatie over het gegevenstype R, de Microsoft Excel-API en vele andere technische aspecten van Microsoft Excel.
Vluchtige functies en herberekenen
Microsoft Excel berekent een DLL-functie (of een coderesource) meestal alleen wanneer deze wordt ingevoerd in een cel, wanneer een van de precedenten wordt gewijzigd of wanneer de cel wordt berekend tijdens een macro. Op een werkblad kunt u een DLL-functie of codebron vluchtig maken, wat betekent dat deze elke keer opnieuw wordt berekend wanneer het werkblad opnieuw wordt berekend. Als u een functie vluchtig wilt maken, voegt u een uitroepteken (!) toe als laatste teken in het argument type_text.
In Microsoft Excel voor Windows bijvoorbeeld wordt de volgende werkbladformule herberekend zodra het werkblad wordt herberekend:
ROEPEN("Kernel32","GetTickCount","J!")
Aanpassen op positie: functies met de instructie void
In type_tekst kunt u één cijfer n gebruiken voor de code van het typeresultaat, waarbij n een cijfer is tussen 1 en 9. Het programma zal dan de variabele op de positie wijzigen die door het n-de argument in type_tekst wordt aangewezen, in plaats van een waarde te geven. Dit wordt ook wel ' genoemd. Het n-de argument moet een verwijzingsgegevenstype zijn (C, D, E, F, G, K, L, M, N, O, P of R). De DDL-functie of codebron moet ook worden gedeclareerd met het trefwoord void in de programmeertaal C (of het trefwoord procedure in de taal Pascal).
Een DLL-functie bijvoorbeeld die als argumenten een tekenreeks met een afsluitende nulwaarde en twee pointers naar gehele getallen gebruikt, kan de tekenreeks op positie wijzigen. Gebruik "1FMM" als het argument type_tekst en declareer de functie als void.
Versies die ouder zijn dan Microsoft Excel 4.0 hebben het > teken gebruikt om het eerste argument te wijzigen. er was geen enkele manier om een ander argument te wijzigen dan het eerste. Het teken > is gelijk aan n = 1 in Microsoft Excel versie 4.0 en hoger.