Verwenden der Funktionen "AUFRUFEN" und "REGISTER"

Wichtig : Vorsicht    Durch falsches Bearbeiten der Registrierung kann es zu einer ernsthaften Beschädigung des Betriebssystems kommen und eine Neuinstallation erforderlich sein. Microsoft kann keine Garantie dafür übernehmen, dass Probleme aufgrund einer falschen Bearbeitung der Registrierung behoben werden können. Sichern Sie vor dem Bearbeiten der Registrierung alle wertvollen Daten. Neueste Informationen zum Verwenden und Schützen der Registrierung auf Ihrem Computer finden Sie in der Hilfe zu Microsoft Windows.

In diesem Artikel werden die Formelsyntax und die Verwendung der Funktionen AUFRUFEN, REGISTER und REGISTER.KENNUMMER in Microsoft Excel beschrieben.

Hinweis : Die Funktionen AUFRUFEN und REGISTER stehen in Excel Online nicht zur Verfügung.

Inhalt dieses Artikels

Beschreibung

Datentypen

Anmerkungen

Zusätzliche Informationen zu einigen Datentypen

Datentypen F und G

Datentyp K

Datentyp O

Datentyp P

Datentyp R: Aufrufen von Microsoft Excel-Funktionen aus DLL-Dateien

Veränderliche Funktionen und Neuberechnungen

Ändern an Ort und Stelle – Als "void" deklarierte Funktionen

Beschreibung

Im Folgenden sind die Datentypen der Argumente und Rückgabewerte beschrieben, die von den Funktionen AUFRUFEN, REGISTER und REGISTER.KENNUMMER verwendet werden. Abhängig von der aktuellen Betriebssystemumgebung sind für die Argumente und Rückgabewerte geringfügige Unterschiede zu berücksichtigen. Auf diese Unterschiede wird in der Datentypentabelle hingewiesen.

Seitenanfang

Datentypen

Bei den Funktionen AUFRUFEN, REGISTER und REGISTER.KENNUMMER bestimmt das Argument Datentyp sowohl den Datentyp des Rückgabewerts als auch die Datentypen aller Argumente der jeweiligen DLL-Funktion oder Coderessource. Das erste Zeichen des Arguments Datentyp gibt den Datentyp des Rückgabewerts an. Die weiteren Zeichen geben die Datentypen der Argumente an. Beispielsweise muss das Argument Datentyp für eine DLL-Funktion, die eine Gleitkommazahl liefert und als Argumente eine ganze Zahl und eine Gleitkommazahl erwartet, durch die Zeichenfolge "BIB" ersetzt werden.

Die folgende Tabelle enthält eine vollständige Liste der von Microsoft Excel akzeptierten Datentypcodes, Beschreibungen zu allen Datentypen, Erläuterungen, wie das jeweilige Argument oder der Rückgabewert übergeben wird, sowie eine typische Deklaration des Datentyps in der Programmiersprache C.

Code

Beschreibung

Übergabe

C-Deklaration

A

Wahrheitswert
(FALSCH = 0), WAHR = 1)

Wert

short int

B

IEEE 8-Byte-Gleitkommazahl

Wert
(Windows)

Referenz (Macintosh)

double
(Windows)

double * (Macintosh)

C

Mit Null beendete Zeichenfolge (maximale Länge der Zeichenfolge = 255 Zeichen)

Referenz

char *

D

Zeichenfolge mit Bytezähler (das erste Byte gibt die Länge der Zeichenfolge an, maximale Länge der Zeichenfolge = 255 Zeichen)

Referenz

Unsigned char *

E

IEEE 8-Byte-Gleitkommazahl

Referenz

double *

F

Mit Null beendete Zeichenfolge (maximale Länge der Zeichenfolge = 255 Zeichen)

Referenz (an Ort und Stelle ändern)

char *

G

Zeichenfolge mit Bytezähler (das erste Byte gibt die Länge der Zeichenfolge an, maximale Länge der Zeichenfolge = 255 Zeichen)

Referenz (an Ort und Stelle ändern)

unsigned char *

H

Aus 2 Bytes bestehende ganze Zahl ohne Vorzeichen

Wert

unsigned short int

I

Aus 2 Bytes bestehende ganze Zahl mit Vorzeichen

Wert

short int

J

Aus 4 Bytes bestehende ganze Zahl mit Vorzeichen

Wert

long int

K

Matrix

Referenz

FP *

L

Wahrheitswert
(FALSCH = 0, WAHR = 1)

Referenz

short int *

M

Aus 2 Bytes bestehende ganze Zahl mit Vorzeichen

Referenz

short int *

N

Aus 4 Bytes bestehende ganze Zahl mit Vorzeichen

Referenz

long int *

O

Matrix

Referenz

Es werden drei Argumente übergeben:
unsigned short int *
unsigned short int *
double [ ]

P

Microsoft Excel-Datenstruktur OPER

Referenz

OPER *

R

Microsoft Excel-Datenstruktur XLOPER

Referenz

XLOPER *

Seitenanfang

Hinweise

  • Für die in der Sprache C angegebenen Deklarationen wird vorausgesetzt, dass Ihr Compiler mit folgenden Standards arbeitet: Zahlen doppelter Genauigkeit (double) bestehen aus 8 Bytes, kurze ganze Zahlen (short int) aus 2 Bytes und lange ganze Zahlen (long int) aus 4 Bytes.

  • Alle Zeiger innerhalb der Programmierumgebung von Microsoft Windows sind Far-Zeiger. Zum Beispiel müssen Sie innerhalb von Microsoft Windows den Datentyp D als unsigned char far * deklarieren.

  • Alle zu einer DLL-Datei oder einer Coderessource gehörenden Funktionen werden gemäß der Pascal-Aufrufvereinbarung aufgerufen. Die meisten C-Compiler ermöglichen Ihnen die Verwendung der Pascal-Aufrufvereinbarung, indem Sie die Deklaration der jeweiligen Funktion um das Pascal-Schlüsselwort erweitern, wie dies im folgenden Beispiel gezeigt ist: pascal void main (rows,columns,a)

  • Verwendet eine Funktion als Rückgabewert einen Datentyp, der per Referenz übergeben wird, können Sie einen Nullzeiger als Rückgabewert übergeben. Microsoft Excel interpretiert den Nullzeiger als Fehlerwert #ZAHL!.

Seitenanfang

Zusätzliche Informationen zu einigen Datentypen

Dieser Abschnitt enthält ausführliche Informationen zu den Datentypen F, G, K, O, P und R sowie zusätzliche Informationen zum Argument Datentyp.

Datentypen F und G

Mit den Datentypen F und G kann eine Funktion Änderungen an einem Puffer vornehmen, den Microsoft Excel für eine Zeichenfolge reserviert hat. Hat der Rückgabecode den Datentyp F oder G, ignoriert Microsoft Excel den von der Funktion gelieferten Wert. Stattdessen durchsucht Microsoft Excel die Liste der Funktionsargumente nach dem ersten übereinstimmenden Datentyp (F oder G) und nimmt dann den aktuellen Inhalt des für die Zeichenfolge reservierten Puffers als Rückgabewert. Da Microsoft Excel für ein solches Argument 256 Bytes reserviert, können die von einer Funktion zurückgegebenen Zeichenfolgen länger sein als die an die Funktion übergebenen Zeichenfolgen.

Seitenanfang

Datentyp K

Der Datentyp K verwendet einen Zeiger, der auf eine FP-Struktur variabler Größe zeigt. Innerhalb einer DLL-Datei oder Coderessource müssen Sie diese Struktur wie folgt definieren:

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

Die Deklaration double array[1] reserviert Speicherplatz für eine aus lediglich einem Element bestehende Matrix. Die Anzahl von Elementen einer Matrix wird normalerweise berechnet, indem die Anzahl von Zeilen mit der Anzahl von Spalten multipliziert wird.

Seitenanfang

Datentyp O

Der Datentyp O kann nur für Argumente, nicht für Rückgabewerte verwendet werden. Er übergibt drei Elemente: je einen Zeiger auf die Anzahl von Zeilen bzw. Spalten der jeweiligen Matrix sowie einen Zeiger auf eine zweidimensionale Matrix, die Gleitkommazahlen enthält.

Anstatt einen Wert zurückzugeben, kann eine Funktion eine mithilfe des Datentyps O übergebene Matrix bearbeiten. Damit dies geschieht, können Sie beispielsweise für das Argument Datentyp die Zeichenfolge ">O" verwenden. Weitere Informationen finden Sie unten unter "Ändern an Ort und Stelle - als "void" deklarierte Funktionen".

Der Datentyp O wurde eingeführt, um eine direkte Kompatibilität mit Fortran-DLL-Dateien zu erreichen, die Argumente per Referenz übergeben.

Seitenanfang

Datentyp P

Der Datentyp P ist ein Zeiger auf eine OPER-Struktur. Die Struktur OPER enthält 8 Datenbytes, auf die ein aus 2 Bytes bestehender Bezeichner folgt, der den Typ der Daten angibt. Bei Verwendung des Datentyps P kann eine DLL-Funktion oder Coderessource jeden Microsoft Excel-Datentyp entgegennehmen oder zurückgeben.

Die Struktur OPER ist wie folgt definiert:

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;

Das Feld "type" enthält einen der folgenden Werte.

Inhalt von "type"

Beschreibung

Zu verwendendes "val"-Feld

1

Zahl (numerisch)

num

2

Zeichenfolge (String, das erste Byte gibt die Länge der Zeichenfolge an)

str

4

Wahrheitswert (boolesch)

bool

16

Fehler. Die Fehlerwerte sind:

0#NULL!

7#DIV/0!

15#WERT!

23#BEZUG!

29#NAME?

36#ZAHL!

42#NV

err

64

Matrix (Array)

array

128

Argument fehlt

256

Leere Zelle

Die beiden letzten Werte können nur als Argumente, nicht als Rückgabewerte verwendet werden. Der Wert 128 (Argument fehlt) wird übergeben, wenn innerhalb des Aufrufs ein Argument fehlt. Der Wert 256 (Leere Zelle) wird übergeben, wenn das aufrufende Element einen Bezug auf eine leere Zelle übergibt.

Seitenanfang

Datentyp R: Aufrufen von Microsoft Excel-Funktionen aus DLL-Dateien

Der Datentyp R ist ein Zeiger auf eine XLOPER-Struktur, die eine erweiterte Version der OPER-Struktur darstellt. In Microsoft Excel, Version 4.0 oder höher, können Sie den Datentyp R verwenden, um DLL-Dateien und Coderessourcen zu schreiben, aus denen Microsoft Excel-Funktionen aufgerufen werden. Mit der XLOPER-Struktur kann eine DLL-Funktion zusätzlich zu der Übergabe von Daten Blattbezüge übergeben und Flusssteuerungen implementieren. Eine umfassende Beschreibung des Datentyps R sowie der für Microsoft Excel definierten Schnittstelle für Anwendungsprogrammierung (API) würde den Rahmen dieses Themas sprengen. Im Microsoft Office XP Entwicklerhandbuch finden Sie ausführliche Informationen zum Datentyp R, zur Microsoft Excel-API und vielen anderen technischen Aspekten von Microsoft Excel.

Seitenanfang

Veränderliche Funktionen und Neuberechnungen

Normalerweise berechnet Microsoft Excel eine DLL-Funktion (oder eine Coderessource) nur dann, wenn sie in eine Zelle eingegeben wird, sich eine ihrer übergeordneten Funktionen ändert oder die Zelle während des Ausführens eines Makros berechnet wird. Sie können für ein Arbeitsblatt erzwingen, dass eine DLL-Funktion oder Coderessource immer berechnet wird, was gleichbedeutend damit ist, dass sie jedes Mal dann neu berechnet wird, wenn das Arbeitsblatt neu berechnet wird. Um dies zu erreichen, müssen Sie ein Ausrufezeichen (!) als letztes Zeichen an das Argument Datentyp anfügen.

In Microsoft Excel für Windows wird beispielsweise die folgende Arbeitsblattformel jedes Mal neu berechnet, wenn das zugehörige Arbeitsblatt neu berechnet wird:

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

Seitenanfang

Ändern an Ort und Stelle – Als "void" deklarierte Funktionen

Für die Angabe des Datentyps des jeweiligen Rückgabewerts können Sie in Datentyp auch eine Zahl n verwenden, wobei n die Werte 1 bis 9 annehmen kann. Dadurch wird Microsoft Excel angewiesen, nicht wie üblich einen Wert zurückzugeben, sondern die Variable zu ändern, welche die Position einnimmt, auf die das n-te Argument von Datentyp zeigt. Dies wird auch als "Ändern an Ort und Stelle" bezeichnet. Das n-te Argument muss einer der Datentypen sein, die per Referenz übergeben werden (C, D, E, F, G, K, L, M, N, O, P oder R). Darüber hinaus muss die DLL-Funktion oder Coderessource in der Sprache C mit dem Schlüsselwort void deklariert sein (oder in Pascal mit dem Schlüsselwort procedure).

Zum Beispiel kann eine DLL-Funktion, an die als Argument eine mit Null beendete Zeichenfolge sowie zwei auf ganze Zahlen zeigende Zeiger übergeben werden, diese Zeichenfolge an Ort und Stelle ändern. Verwenden Sie dazu für das Argument Datentyp die Zeichenfolge "1FMM", und deklarieren Sie die Funktion als void.

Alle Versionen von Microsoft Excel, die älter als die Version 4.0 sind, verwenden das Größer-als-Zeichen (>), um das erste Argument an Ort und Stelle zu ändern. Bei diesen Versionen gibt es daher keine Möglichkeit, außer dem ersten Argument noch andere Argumente zu ändern. Das Zeichen > ist in Microsoft Excel, Version 4.0 und höher, identisch mit n = 1.

Seitenanfang

Teilen Facebook Facebook Twitter Twitter E-Mail E-Mail

War diese Information hilfreich?

Sehr gut. Noch anderes Feedback?

Was können wir verbessern?

Vielen Dank für Ihr Feedback!

×