Re: DLL aus Exceltabelle aufrufen
17.06.2003 15:53:09
RAnton
Hallo peter,
hier mal den Hilfetext dazu, vielleicht hilft der weiter.CALL
Siehe auch
Ruft eine Prozedur in einer DLL (Dynamic Link Library) oder Code-Ressource auf. Für diese Funktion gibt es zwei Syntaxversionen. Die Syntax 1 können Sie nur für eine bereits angemeldete (registrierte) Code-Ressource einsetzen, die auf Argumente der Funktion REGISTER zurückgreift. Die Syntax 2a oder 2b können Sie immer dann einsetzen, wenn Sie eine Code-Ressource gleichzeitig anmelden und aufrufen möchten.
Wichtig Diese Funktion sollte nur von erfahrenen Microsoft Excel-Anwendern eingesetzt werden, Wenn Sie die Funktion CALL falsch verwenden, kann dies unter Umständen so schwerwiegende Fehler zur Folge haben, dass Sie den Computer neu starten müssen.
Syntax 1
Wird zusammen mit REGISTER verwendet
CALL(Registrier;Argument1;...)
Syntax 2a
Wird selbständig verwendet (in Microsoft Excel für Windows)
CALL(Modul;Prozedur;Datentyp;Argument1;...)
Syntax 2b
Wird selbständig verwendet (in Microsoft Excel für den Macintosh)
CALL(Datei;Ressource;Datentyp;Argument1;...)
Registrier ist ein Wert, den eine der Funktionen REGISTER oder REGISTER.KENNUMMER geliefert hat.
Argument1; ... sind die Argumente, die an die jeweilige Prozedur übergeben werden sollen.
Modul ist eine in Anführungszeichen stehende Zeichenfolge, die den Namen der DLL-Datei (Dynamic Link Library, DLL) angibt, zu der die aufzurufende Prozedur in Microsoft Excel für Windows gehört.
Datei ist der Name der Datei, zu der die aufzurufende Prozedur in Microsoft Excel für den Macintosh gehört.
Prozedur ist eine Zeichenfolge, die in Microsoft Excel für Windows den Namen angibt, unter dem die aufzurufende Funktion in der angegebenen DLL-Datei abgelegt ist. Sie können auch die Ordnungszahl verwenden, die der Funktion in der Anweisung EXPORTE der Moduldefinitionsdatei (.DEF) zugeordnet ist. Eine Ordnungszahl darf nicht in Anführungszeichen stehen.
Ressource ist in Microsoft Excel für den Macintosh der Name der gewünschten Code-Ressource. Sie können alternativ dazu die Kennnummer der Ressource angeben, wobei diese Kennnummer allerdings nicht in Anführungszeichen stehen darf.
Datentyp ist eine in Anführungszeichen stehende Zeichenfolge, die sowohl den Datentyp des Rückgabewertes als auch die Datentypen der Argumente angibt, die an die jeweilige DLL-Prozedur bzw. Code-Ressource übergeben werden. Der erste Buchstabe des Arguments Datentyp gibt den Rückgabewert an. Die Bedeutungen der Buchstaben, die für das Argument Datentyp verwendet werden können, sind ausführlich unter Einsetzen der Funktion CALL und REGISTER erläutert. Bei selbständigen DLL-Dateien oder Code-Ressourcen (XLL-Dateien) kann dieses Argument fehlen.
Beispiel
Syntax 1 (32-Bit Microsoft Excel)
In 32-Bit Microsoft Excel für Windows meldet die folgende innerhalb eines Makros stehende Formel die zu 32-Bit Microsoft Windows gehörende Funktion GetTickCount an. GetTickCount liefert eine Zahl, die angibt, wie viele Millisekunden seit dem letzten Start von Microsoft Windows vergangen sind.
REGISTER("Kernel32","GetTickCount","J")
Diese REGISTER-Funktion befindet sich z. B. in der Zelle A5. Sobald die Funktion GetTickCount innerhalb Ihres Makros angemeldet ist, können Sie mit Hilfe der Funktion CALL ermitteln, wie viele Millisekunden vergangen sind:
CALL(A5)
Syntax 1 (16-Bit Microsoft Excel)
In 16-Bit Microsoft Excel für Windows meldet die folgende innerhalb eines Makros stehende Formel die zu 16-Bit Microsoft Windows gehörende Funktion GetTickCount an. GetTickCount liefert eine Zahl, die angibt, wie viele Millisekunden seit dem letzten Start von Microsoft Windows vergangen sind.
REGISTER("User","GetTickCount","J")
Diese REGISTER-Funktion befindet sich z. B. in der Zelle A5. Sobald die Funktion GetTickCount innerhalb Ihres Makros angemeldet ist, können Sie mit Hilfe der Funktion CALL ermitteln, wie viele Millisekunden vergangen sind:
CALL(A5)
Beispiel
Syntax 2a (32-Bit Microsoft Excel)
Mit der folgenden CALL-Formel (Syntax 2a) können Sie in einer Tabelle heraus die Funktion GetTickCount aufrufen:
CALL("Kernel32","GetTickCount","J!")
Durch das innerhalb des Arguments Datentyp stehende ! wird Microsoft Excel dazu veranlasst, die CALL-Funktion immer dann erneut auszuwerten, wenn die Tabelle neu berechnet wird. Somit wird die vergangene Zeit jedesmal aktualisiert, wenn die Tabelle neu berechnet wird.
Syntax 2a (16-Bit Microsoft Excel)
Mit der folgenden CALL-Formel (Syntax 2a) können Sie in einer Tabelle heraus die Funktion GetTickCount aufrufen:
CALL("User","GetTickCount","J!")
Durch das innerhalb des Arguments Datentyp stehende ! wird Microsoft Excel dazu veranlasst, die CALL-Funktion immer dann erneut auszuwerten, wenn die Tabelle neu berechnet wird. Somit wird die vergangene Zeit jedesmal aktualisiert, wenn die Tabelle neu berechnet wird.
Tipp Mit Hilfe der optionalen Argumente der Funktion REGISTER können Sie einer Funktion einen benutzerdefinierten Namen zuweisen. Dieser Name erscheint dann im Dialogfeld Funktion einfügen, und Sie können die Funktion aufrufen, indem Sie deren benutzerdefinierten Namen innerhalb einer Formel verwenden. Weitere Informationen finden Sie unter REGISTER.
Gruß
RAnton