Använda funktionerna ANROPA och REGISTRERA

Viktigt!: Den här artikeln är maskinöversatt, se ansvarsfriskrivningen. Den engelska versionen av den här artikeln finns här för din referens.

Viktigt!: Varning!    Om registret redigeras felaktigt kan det skada operativsystemet allvarligt, och det kan behöva installeras om. Microsoft kan inte garantera att problem som orsakats av felaktig redigering av registret ska gå att lösa. Innan du redigerar registret bör du säkerhetskopiera alla viktiga data. Om du vill ha den senaste informationen om att använda och skydda datorns register läser du i Microsoft Windows Hjälp.

I den här artikeln beskrivs formelsyntaxen för och användningen av funktionerna ANROPA, REGISTRERA och REGISTRERA.ID i Microsoft Excel.

Obs!: Funktionerna ANROPA och REGISTRERA är inte tillgängliga i Excel Online.

Den här artikeln innehåller följande avsnitt

Beskrivning

Datatyper

Kommentarer

Ytterligare information om datatyper

Datatyperna F och G

Datatyp K

Datatyp O

Datatyp P

Datatyp R – Anropa Microsoft Excel-funktioner från DLL-filer

Ej beständiga funktioner och omräkning

Modifiera på plats – funktioner utan returvärde

Beskrivning

Nedan beskrivs de argument och datatyper för returnerade värden som används av funktionerna ANROPA, REGISTRERA och REGISTRERA.ID. Argumenten och de returnerade värdena är i viss mån beroende av vilket operativsystem du använder. Skillnaderna beskrivs i tabellen över datatyper.

Överst på sidan

Datatyper

I funktionerna ANROPA, REGISTRERA och REGISTRERA.ID anger argumentet, typ datatypen för det returnerade värdet och datatyperna för alla argument till DLL-funktionen eller kodresursen. Det första tecknet i typ representerar datatypen för det returnerade värdet. De övriga tecknen anger datatyperna för alla argumenten. Exempelvis krävs typ-argumentet "BIB" för en DLL-funktion som returnerar ett flyttal och som använder ett heltal och ett flyttal som argument.

Nedanstående tabell innehåller en fullständig lista över de datatypkoder som Microsoft Excel känner igen, en beskrivning av varje datatyp, hur argumenten eller det returnerade värdet överförs, samt en typisk deklaration i programmeringsspråket C för datatypen i fråga.

Kod

Beskrivning

Överförs av

C-deklaration

En

Logiskt
(FALSKT = 0), SANT = 1)

Värde

short int

B

8-byte flyttalsvärde enligt IEEE

Värde
(Windows)

Referens (Macintosh)

double
(Windows)

double * (Macintosh)

c

Nollavslutad sträng (maxlängd på sträng = 255)

Referens

char *

:d

Byte-räknad sträng (första byte innehåller strängens längd, maxlängd på sträng = 255 tecken)

Referens

Unsigned char *

R

8-byte flyttalsvärde enligt IEEE

Referens

double *

f

Nollavslutad sträng (maxlängd på sträng = 255 tecken)

Referens (modifiera på plats)

char *

G

Byte-räknad sträng (första byte innehåller strängens längd, maxlängd på sträng = 255 tecken)

Referens (modifiera på plats)

unsigned char *

H

2-byte heltal utan tecken

Värde

unsigned short int

I

2-byte heltal med tecken

Värde

short int

J

4-byte heltal med tecken

Värde

long int

N

Matris

Referens

FP *

l

Logiskt
(FALSKT = 0), SANT = 1)

Referens

short int *

"m"

2-byte heltal med tecken

Referens

short int *

N

4-byte heltal med tecken

Referens

long int *

O

Matris

Referens

Tre argument överförs:
unsigned short int *
unsigned short int *
double [ ]

P

Microsoft Excel datastruktur OPER

Referens

OPER *

R

Microsoft Excel datastruktur XLOPER

Referens

XLOPER *

Överst på sidan

Kommentarer

  • Deklarationer i C-språket grundas på antagandet att din kompilator använder 8-byte double, 2-byte short int och 4-byte long int som standard.

  • I programmeringsmiljön Microsoft Windows deklareras alla pekare som far-pekare. Du ska exempelvis deklarera datatypkoden D som unsigned char far * i Microsoft Windows.

  • Alla funktioner i DLL-bibliotek och kodresurser anropas med hjälp av Pascals anropskonvention. De flesta C-kompilatorer tillåter att Pascals anropskonvention används genom att nyckelordet pascal läggs till funktionsdeklarationen enligt följande exempel: pascal void main (rows,columns,a)

  • Om en funktion använder en datatyp som överförs som referens för sitt returnerade värde kan du överföra en nollpekare som det returnerade värdet. Microsoft Excel tolkar nollpekaren som felvärdet #Ogiltigt!.

Överst på sidan

Ytterligare information om datatyper

Detta avsnitt innehåller detaljerad information om datatyperna F, G, K, O, P och R samt annan information om argumentet type_text.

Datatyperna F och G

Med hjälp av datatyperna F och G kan en funktion modifiera en strängbuffert som skapats av Microsoft Excel. Om typkoden för det returnerade värdet är F eller G ignorerar Microsoft Excel funktionens returvärde. Microsoft Excel söker i stället igenom listan över funktionsargument efter den första motsvarande datatypen (F eller G) och använder sedan det aktuella innehållet i strängbufferten som det returnerade värdet. Microsoft Excel använder 256 byte för argumentet så att funktionen kan returnera en större sträng än den har tagit emot.

Överst på sidan

Datatyp K

Datatypen K använder en pekare till en FP-struktur med variabel storlek. Strukturen i DLL eller kodresursen definieras på följande sätt:

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

Deklarationen double array[1] avsätter endast minnesutrymme för en matris med ett enda element. Antalet element i den verkliga matrisen motsvarar antalet rader multiplicerat med antalet kolumner.

Överst på sidan

Datatyp O

Datatypen O kan endast användas som ett argument, inte som ett returnerat värde. Datatypen överför tre element: en pekare till antalet rader i en matris, en pekare till antalet kolumner i en matris och en pekare till en tvådimensionell matris med flyttalsvärden.

I stället för att returnera ett värde kan en funktion modifiera en matris som har överförts med datatyp O. Detta kan göras genom att ">O" används för argumentet type_text. Mer information finns under "Modifiera på plats – funktioner utan returvärde", nedan.

Datatypen O har skapats för direkt kompatibilitet med Fortran DLL-funktioner, som överför argument med referens.

Överst på sidan

Datatyp P

Datatypen P är en pekare till en OPER-struktur. OPER-strukturen innehåller 8 byte data följt av en id-kod på 2 byte som anger datatypen. Med hjälp av datatypen P kan en DLL-funktion eller en kodresurs anta och returnera alla datatyper i Microsoft Excel.

OPER-strukturen definieras på följande sätt:

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;

Fältet type innehåller ett av följande värden.

Typ

Beskrivning

Värdefält att använda

1

Numerisk

num

2

Sträng (första byte innehåller strängens längd)

str

4

Boolesk (logisk)

bool

16

Fel: Felvärdena är:

0#Skärning!

7#Division/0!

15#Värdefel!

23#Referens!

29#Namn?

36#Ogiltigt!

42#Saknas!

fel

64

Matris

matris

128

Argument saknas

256

Tom cell

De sista två värdena kan endast användas som argument, inte som returnerade värden. Värdet för saknade argument (128) överförs när anroparen utelämnar ett argument. Värdet för tom cell (256) överförs när anroparen överför en referens till en tom cell.

Överst på sidan

Datatyp R – Anropa Microsoft Excel-funktioner från DLL-filer

Datatypen R är en pekare till en XLOPER-struktur, som är en förbättrad version av OPER-strukturen. I Microsoft Excel version 4.0 och senare kan du använda datatypen R för att skriva DLL-filer och kodresurser som anropar Microsoft Excel-funktioner. Med XLOPER-strukturen kan en DLL-funktion överföra bladreferenser och införa flödesreglering, förutom att den kan överföra data. En fullständig beskrivning av datatyp R och Microsoft Excel API-gränssnitt ryms inte i detta hjälpavsnitt. Microsoft Office XP Developer's Guide innehåller detaljerad information om datatypen R, Microsoft Excel API och många andra tekniska aspekter av Microsoft Excel.

Överst på sidan

Ej beständiga funktioner och omräkning

Microsoft Excel beräknar normalt en DLL-funktion (eller en kodresurs) endast när den matas in i en cell, när någon av dess överordnade ändras eller när cellen beräknas under ett makro. I ett kalkylblad kan en DLL-funktion eller kodresurs göras ej beständig, vilket innebär att den räknas om varje gång kalkylbladet räknas om. Om en funktion ska göras ej beständig infogas ett utropstecken (!) som sista tecken i argumentet typ.

Exempel: I Microsoft Excel för Windows utför följande kalkylbladsformel omräkning varje gång kalkylbladet räknas om:

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

Överst på sidan

Modifiera på plats – funktioner utan returvärde

Man kan använda en enstaka siffra, n, för den returnerade typkoden i typ, där n är ett tal mellan 1 och 9. Detta instruerar Microsoft Excel att modifiera variabeln på den plats som utpekas med det n:te argumentet i typ, i stället för att returnera ett värde. Detta brukar även kallas att modifiera på plats. Det n:te argumentet måste vara en datatyp som överförs med referens (C, D, E, F, G, K, L, M, N, O, P eller R). DLL-funktionen eller kodresursen måste också deklareras med nyckelordet void i C-språket (eller nyckelordet procedure i språket Pascal).

Exempel: En DLL-funktion som antar en nollavslutad sträng och två pekare till heltal som argument kan modifiera strängen på plats. Använd "1FMM" för argumentet type_text och deklarera funktionen som ogiltig (void).

Tidigare versioner än Microsoft Excel 4.0 använde tecknet > för att modifiera det första argumentet på plats. Det gick inte att modifiera något annat argument än det första argumentet. Tecknet > motsvarar n = 1 i Microsoft Excel version 4.0 och senare.

Överst på sidan

Obs!: Ansvarsfriskrivning för maskinöversättning: Den här artikeln har översatts av ett datorsystem utan mänsklig inblandning. Microsoft erbjuder dessa maskinöversättningar för att hjälpa icke engelskspråkiga användare att ta del av information om Microsofts produkter, tjänster och tekniker. Eftersom artikeln är maskinöversatt kan den innehålla fel i ordval, syntax och grammatik.

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×