Call-Anweisung
Überträgt die Steuerung an eine Sub-Prozedur, eine Funktionsprozedur oder eine DLL-Prozedur (Dynamic Link Library).
Syntax
[ Call ] name [ argumentlist ]
Die Syntax der Call-Anweisung besteht aus folgenden Teilen:
Teil | Beschreibung |
---|---|
Call | Optional; Schlüsselwort. Falls angegeben, müssen Sie argumentlist in Klammern einschließen. Beispiel: Call MyProc(0) |
name | Erforderlich. Der Name der aufzurufenden Prozedur. |
argumentlist | Optional. Durch Trennzeichen getrennte Liste von Variablen, Arrays oder Ausdrücken, die an die Prozedur übergeben werden. Komponenten von argumentlist können die Schlüsselwörter ByVal oder ByRef enthalten, um zu beschreiben, wie die Argumente von der aufgerufenen Prozedur behandelt werden. ByVal und ByRef können jedoch nur zusammen mit Call verwendet werden, wenn eine DLL-Prozedur aufgerufen wird. Auf einem Macintosh-Computer können ByVal und ByRef mit Call beim Aufruf einer Macintosh-Coderessource verwendet werden. |
Hinweise
Sie müssen das Call-Schlüsselwort beim Aufrufen einer Prozedur nicht verwenden. Wenn Sie das Call-Schlüsselwort jedoch verwenden, um eine Prozedur aufzurufen, die Argumente erfordert, muss argumentlist in Klammern eingeschlossen werden. Wenn Sie das Call-Schlüsselwort weglassen, müssen Sie auch die Klammern um argumentlist weglassen. Wenn Sie eine Call-Syntax verwenden, um eine systeminterne oder eine benutzerdefinierte Funktion aufzurufen, wird der Rückgabewert der Funktion verworfen.
In Visual Basic .NET können Sie nur den Aufruf Schlüsselwort (keyword) die Klammern in den meisten Fällen auslassen. In VBA müssen Sie jedoch beide oder keine der Aufruf- und Klammern verwenden.
Um ein ganzes Array an eine Prozedur zu übergeben, verwenden Sie den Arraynamen gefolgt von leeren Klammern.
Beispiel
Dieses Beispiel veranschaulicht, wie die Call-Anweisung verwendet wird, um die Steuerung an eine Sub-Prozedur, eine systeminterne Funktion und eine Dynamic Link Library (DLL)-Prozedur zu übertragen. DLLs werden auf Macintosh nicht verwendet.
' Call a Sub procedure.
Call PrintToDebugWindow("Hello World")
' The above statement causes control to be passed to the following
' Sub procedure.
Sub PrintToDebugWindow(AnyString)
Debug.Print AnyString ' Print to the Immediate window.
End Sub
' Call an intrinsic function. The return value of the function is
' discarded.
Call Shell(AppName, 1) ' AppName contains the path of the
' executable file.
' Call a Microsoft Windows DLL procedure. The Declare statement must be
' Private in a Class Module, but not in a standard Module.
Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer)
Sub CallMyDll()
Call MessageBeep(0) ' Call Windows DLL procedure.
MessageBeep 0 ' Call again without Call keyword.
End Sub
Siehe auch
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.