Werken met de functies ROEPEN en REGISTER

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 ROEPEN en REGISTER zijn niet beschikbaar in Excel Online.

In dit artikel

Beschrijving

Gegevenstypen

Opmerkingen

Informatie over andere gegevenstypen

De gegevenstypen F en G

Het gegevenstype K

Het gegevenstype O

Het gegevenstype P

Gegevenstype R: Microsoft Excel-functies oproepen vanuit DLL-bestanden

Vluchtige functies en herberekenen

Aanpassen op positie: functies met de instructie void

Beschrijving

Hier volgt een beschrijving van de gegevenstypen voor argumenten en resulterende waarden die in de functies ROEPEN, REGISTER en REGISTRATIE.ID worden gebruikt. Er is een klein verschil tussen argumenten en resulterende waarden, afhankelijk van uw besturingsomgeving. Deze verschillen worden in de gegevenstypetabel vermeld.

Naar boven

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 *

Naar boven

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 resulteert in een waarde van een type dat als verwijzing wordt doorgegeven, kunt u een pointer naar een nulwaarde doorgegeven als resulterende waarde. Microsoft Excel zal de pointer interpreteren als de foutwaarde #GETAL!.

Naar boven

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.

Naar boven

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.

Naar boven

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.

Naar boven

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.

Naar boven

Gegevenstype R: Microsoft Excel-functies oproepen vanuit DLL-bestanden

Het gegevenstype R is een pointer naar een XLOPER-structuur. Dit is een uitgebreide versie van de OPER-structuur. In Microsoft Excel versie 4.0 en lager kunt u het gegevenstype R gebruiken om DLL-bestanden en codebronnen te schrijven die Microsoft Excel-functies oproepen. Met de XLOPER-structuur kan de functie behalve gegevens ook DLL-werkbladverwijzingen doorgeven en het programmaverloop beïnvloeden. Een volledige beschrijving van het gegeventype R en de Microsoft Excel application programming interface (API) zou hier teveel ruimte innemen. In de Microsoft Office XP Developer's Guide vindt u gedetailleerde informatie over het gegeventype R, de Microsoft Excel API en vele andere technische aspecten van Microsoft Excel.

Naar boven

Vluchtige functies en herberekenen

Normaal gesproken berekent Microsoft Excel een DLL-functie (of een codebron) alleen als deze in een cel is ingevoerd, als een van de broncellen is gewijzigd, of als de cel wordt berekend bij de uitvoering van een macro. In een werkblad kunt u een DLL-functie of codebron vluchtig maken. Dit wil zeggen dat deze wordt herberekend zodra het werkblad wordt herberekend. U kunt een functie vluchtig maken door een uitroepteken (!) toe te voegen als laatste teken in het argument type_tekst.

In Microsoft Excel voor Windows bijvoorbeeld wordt de volgende werkbladformule herberekend zodra het werkblad wordt herberekend:

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

Naar boven

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 vóór Microsoft Excel 4.0 gebruikten het teken > om het eerste argument aan te passen op positie. Alleen het eerste argument kon worden aangepast. In Microsoft Excel versie 4.0 en hoger is het teken > gelijk aan n = 1.

Naar boven

Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×