Friday, February 24, 2023

Verwenden der Funktionen CALL und REGISTER - Microsoft Support

Wichtig: Vorsicht Eine unsachgemäße Bearbeitung der Registrierung kann Ihr Betriebssystem schwer beschädigen und eine Neuinstallation erforderlich machen. Microsoft kann nicht garantieren, dass Probleme, die sich aus einer fehlerhaften Bearbeitung der Registrierung ergeben, behoben werden können. Sichern Sie alle wertvollen Daten, bevor Sie die Registrierung bearbeiten. Die neuesten Informationen zum Verwenden und Schützen der Registrierung Ihres Computers finden Sie in der Microsoft Windows-Hilfe.

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

Hinweis: Die Funktionen ANRUFEN und REGISTRIEREN sind in Excel für das Web nicht verfügbar.

In diesem Artikel

Beschreibung

Im Folgenden werden die Datentypen für Argumente und Rückgabewerte beschrieben, die von den Funktionen CALL , REGISTER und REGISTER.ID verwendet werden. Argumente und Rückgabewerte unterscheiden sich geringfügig je nach Ihrer Betriebsumgebung, und diese Unterschiede sind in der Datentyptabelle angegeben.

Seitenanfang

Datentypen

In den Funktionen CALL , REGISTER und REGISTER.ID gibt das Argument type_text den Datentyp des Rückgabewerts und die Datentypen aller Argumente für die DLL-Funktion oder Coderessource an. Das erste Zeichen von type_text gibt den Datentyp des Rückgabewerts an. Die restlichen Zeichen geben die Datentypen aller Argumente an. Beispielsweise würde eine DLL-Funktion, die eine Gleitkommazahl zurückgibt und eine Ganzzahl und eine Gleitkommazahl als Argumente akzeptiert, "BIB" für das type_text-Argument erfordern.

Die folgende Tabelle enthält eine vollständige Liste der Datentypcodes, die Microsoft Excel erkennt, eine Beschreibung jedes Datentyps, wie das Argument oder der Rückgabewert übergeben wird, und eine typische Deklaration für den Datentyp in der Programmiersprache C.

Code

Beschreibung

Vorbeigehen

C-Erklärung

A

Logisch
(FALSCH = 0), WAHR = 1)

Wert

kurz int

B

IEEE 8-Byte-Gleitkommazahl

Wert
(Windows)

Referenz (Macintosh)

doppelt
(Windows)

doppelt * (Macintosh)

C

Null-terminierter String (maximale Stringlänge = 255)

Referenz

Zeichen *

D

Byte-gezählter String (erstes Byte enthält Länge des Strings, maximale Stringlänge = 255 Zeichen)

Referenz

Zeichen ohne Vorzeichen *

E

IEEE 8-Byte-Gleitkommazahl

Referenz

doppelt *

F

Null-terminierter String (maximale Stringlänge = 255 Zeichen)

Referenz (an Ort und Stelle ändern)

Zeichen *

G

Byte-gezählter String (erstes Byte enthält Länge des Strings, maximale Stringlänge = 255 Zeichen)

Referenz (an Ort und Stelle ändern)

unsigned char *

H

2-Byte-Ganzzahl ohne Vorzeichen

Wert

unsigned short int

ICH

Vorzeichenbehaftete 2-Byte-Ganzzahl

Wert

kurz int

J

Vorzeichenbehaftete 4-Byte-Ganzzahl

Wert

lang int

K

Array

Referenz

VP *

L

Logisch
(FALSCH = 0, WAHR = 1)

Referenz

kurz int *

M

Vorzeichenbehaftete 2-Byte-Ganzzahl

Referenz

kurz int *

N

Vorzeichenbehaftete 4-Byte-Ganzzahl

Referenz

lange Ganzzahl *

Ö

Array

Referenz

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

P

Microsoft Excel OPER-Datenstruktur

Referenz

OPER *

R

Microsoft Excel XLOPER-Datenstruktur

Referenz

XLOPER *

Seitenanfang

Bemerkungen

  • Die C-Deklarationen basieren auf der Annahme, dass Ihr Compiler standardmäßig 8-Byte-Double, 2-Byte-Short-Integer und 4-Byte-Long-Integer verwendet.

  • In der Programmierumgebung von Microsoft Windows sind alle Zeiger Far-Zeiger. Beispielsweise müssen Sie den D-Datentypcode in Microsoft Windows als unsigned char far * deklarieren.

  • Alle Funktionen in DLLs und Code-Ressourcen werden mit der Pascal-Aufrufkonvention aufgerufen. Bei den meisten C-Compilern können Sie die Pascal-Aufrufkonvention verwenden, indem Sie das Pascal-Schlüsselwort zur Funktionsdeklaration hinzufügen, wie im folgenden Beispiel gezeigt: pascal void main (rows,columns,a)

  • Wenn eine Funktion einen Pass-by-Reference-Datentyp für ihren Rückgabewert verwendet, können Sie einen Nullzeiger als Rückgabewert übergeben. Microsoft Excel interpretiert den Nullzeiger als #NUM! Fehlerwert.

Seitenanfang

Zusätzliche Informationen zu Datentypen

Dieser Abschnitt enthält detaillierte Informationen zu den Datentypen F, G, K, O, P und R sowie weitere Informationen zum Argument type_text.

F- und G-Datentypen

Mit den Datentypen F und G kann eine Funktion einen Zeichenfolgenpuffer ändern, der von Microsoft Excel zugewiesen wird. Wenn der Typcode des Rückgabewerts F oder G ist, ignoriert Microsoft Excel den von der Funktion zurückgegebenen Wert. Stattdessen durchsucht Microsoft Excel die Liste der Funktionsargumente nach dem ersten entsprechenden Datentyp (F oder G) und nimmt dann als Rückgabewert den aktuellen Inhalt des zugewiesenen Zeichenfolgenpuffers. Microsoft Excel weist dem Argument 256 Byte zu, sodass die Funktion möglicherweise eine größere Zeichenfolge zurückgibt, als sie empfangen hat.

Seitenanfang

K-Datentyp

Der K-Datentyp verwendet einen Zeiger auf eine FP-Struktur variabler Größe. Sie müssen diese Struktur in der DLL- oder Code-Ressource 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] weist Speicher nur für ein Array mit einem Element zu. Die Anzahl der Elemente im tatsächlichen Array entspricht der Anzahl der Zeilen multipliziert mit der Anzahl der Spalten.

Seitenanfang

O Datentyp

Der Datentyp O kann nur als Argument verwendet werden, nicht als Rückgabewert. Es übergibt drei Elemente: einen Zeiger auf die Anzahl der Zeilen in einem Array, einen Zeiger auf die Anzahl der Spalten in einem Array und einen Zeiger auf ein zweidimensionales Array mit Gleitkommazahlen.

Anstatt einen Wert zurückzugeben, kann eine Funktion ein Array ändern, das vom Datentyp O übergeben wird. Dazu können Sie ">O" als type_text-Argument verwenden. Weitere Informationen finden Sie weiter unten unter „Modifizieren an Ort und Stelle – Als ungültig deklarierte Funktionen".

Der Datentyp O wurde für die direkte Kompatibilität mit Fortran-DLLs erstellt, die Argumente als Referenz übergeben.

Seitenanfang

P-Datentyp

Der P-Datentyp ist ein Zeiger auf eine OPER-Struktur. Die OPER-Struktur enthält 8 Datenbytes, gefolgt von einer 2-Byte-Kennung, die den Datentyp angibt. Mit dem P-Datentyp kann eine DLL-Funktion oder Coderessource jeden Microsoft Excel-Datentyp annehmen und zurückgeben.

Die OPER-Struktur 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 Typfeld enthält einen dieser Werte.

Typ

Beschreibung

Zu verwendendes Val-Feld

1

Numerisch

Anzahl

2

String (erstes Byte enthält die Länge des Strings)

Str

4

Boolesch (logisch)

bool

16

Fehler: Die Fehlerwerte sind:

0#NULL!

7#DIV/0!

15#Wert!

23#REF!

29#NAME?

36#NUM!

42#n. z

irren

64

Array

Reihe

128

Fehlendes Argument

256

Leere Zelle

Die letzten beiden Werte können nur als Argumente verwendet werden, nicht als Rückgabewerte. Der fehlende Argumentwert (128) wird übergeben, wenn der Aufrufer ein Argument weglässt. Der leere Zellenwert (256) wird übergeben, wenn der Aufrufer einen Verweis auf eine leere Zelle übergibt.

Seitenanfang

R-Datentyp – Aufrufen von Microsoft Excel-Funktionen aus DLLs

Der R-Datentyp ist ein Zeiger auf eine XLOPER-Struktur, die eine erweiterte Version der OPER-Struktur ist. In Microsoft Excel Version 4.0 und höher können Sie den R-Datentyp verwenden, um DLLs und Coderessourcen zu schreiben, die Microsoft Excel-Funktionen aufrufen. Mit der XLOPER-Struktur kann eine DLL-Funktion neben der Weitergabe von Daten Blattverweise übergeben und eine Flusssteuerung implementieren. Eine vollständige Beschreibung des R-Datentyps und der Microsoft Excel-Anwendungsprogrammierschnittstelle (API) würde den Rahmen dieses Themas sprengen. Das Microsoft Office XP-Entwicklerhandbuch enthält detaillierte Informationen über den R-Datentyp, die Microsoft Excel-API und viele andere technische Aspekte von Microsoft Excel.

Seitenanfang

Flüchtige Funktionen und Neuberechnung

Microsoft Excel berechnet eine DLL-Funktion (oder eine Coderessource) normalerweise nur dann, wenn sie in eine Zelle eingegeben wird, wenn sich einer ihrer Vorgänger ändert oder wenn die Zelle während eines Makros berechnet wird. Auf einem Arbeitsblatt können Sie eine DLL-Funktion oder Coderessource flüchtig machen, was bedeutet, dass sie jedes Mal neu berechnet wird, wenn das Arbeitsblatt neu berechnet wird. Um eine Funktion flüchtig zu machen, fügen Sie ein Ausrufezeichen (!) als letztes Zeichen im type_text-Argument hinzu.

Beispielsweise wird in Microsoft Excel für Windows die folgende Arbeitsblattformel jedes Mal neu berechnet, wenn das Arbeitsblatt neu berechnet wird:

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

Seitenanfang

An Ort und Stelle modifizieren – Als ungültig deklarierte Funktionen

Sie können eine einzelne Ziffer n für den Rückgabetypcode in type_text verwenden, wobei n eine Zahl von 1 bis 9 ist. Dadurch wird Microsoft Excel angewiesen, die Variable an der Stelle zu ändern, auf die das n-te Argument in type_text zeigt, anstatt einen Wert zurückzugeben . Dies wird auch als Modifizieren an Ort und Stelle bezeichnet. Das n-te Argument muss ein Pass-by-Reference-Datentyp sein (C, D, E, F, G, K, L, M, N, O, P oder R). Die DLL-Funktion oder Coderessource muss auch mit dem void-Schlüsselwort in der C-Sprache (oder dem procedure-Schlüsselwort in der Pascal-Sprache) deklariert werden.

Beispielsweise kann eine DLL-Funktion, die eine nullterminierte Zeichenfolge und zwei Zeiger auf Ganzzahlen als Argumente verwendet, die Zeichenfolge an Ort und Stelle ändern. Verwenden Sie „1FMM" als type_text-Argument und deklarieren Sie die Funktion als void.

Versionen vor Microsoft Excel 4.0 verwendeten das Zeichen >, um das erste vorhandene Argument zu ändern; Es gab keine Möglichkeit, ein anderes Argument als das erste zu ändern. Das Zeichen > entspricht n = 1 in Microsoft Excel Version 4.0 und höher.

Seitenanfang

No comments:

Post a Comment