Sub-Prozeduren
Aktualisiert: November 2007
Eine Sub-Prozedur ist eine Reihe von Visual Basic-Anweisungen, die von den Anweisungen Sub und End Sub eingeschlossen sind. Die Sub-Prozedur führt eine Aufgabe aus und gibt die Steuerung anschließend an den Aufrufcode zurück; sie gibt dem Aufrufcode jedoch keinen Wert zurück.
Bei jedem Aufruf der Prozedur werden ihre Anweisungen ausgeführt. Dabei wird mit der ersten ausführbaren Anweisung nach der Sub-Anweisung begonnen und mit der ersten auftretenden End Sub-, Exit Sub- oder Return-Anweisung geendet.
Sub-Prozeduren können in Modulen, Klassen und Strukturen definiert werden. Sie sind standardmäßig als Public definiert. Sie können sie an jeder Stelle im Code Ihrer Anwendung aufrufen, der Zugriff auf das Modul, die Klasse oder die Struktur hat, in der sie definiert sind. Die Bezeichnung Methode beschreibt eine Sub-Prozedur oder Function-Prozedur, die außerhalb des Moduls, der Klasse oder der Struktur aufgerufen wird, in der sie definiert ist. Weitere Informationen finden Sie unter Class-Methoden.
Eine Sub-Prozedur kann Argumente wie Konstanten, Variablen oder Ausdrücke annehmen, die durch den Aufrufcode an sie übergeben werden.
Deklarationssyntax
Die Syntax zur Deklaration einer Sub-Prozedur lautet wie folgt:
[Modifizierer] Sub Subname[(Parameterliste)]
' Statements of the Sub procedure.
End Sub
Mithilfe von modifiers werden die Zugriffsebene und Informationen zum Überladen, Überschreiben, Freigeben und Shadowing angegeben. Weitere Informationen finden Sie unter Sub-Anweisung (Visual Basic).
Parameterdeklaration
Jeder Prozedurparameter wird ähnlich wie eine Variable deklariert, nämlich durch Angabe des Parameternamens und des Datentyps. Sie können auch den Übergabemechanismus festlegen und bestimmen, ob der Parameter optional oder ein Parameterarray ist.
Die Syntax für jeden Parameter in der Parameterliste lautet folgendermaßen:
[Optional] [ByVal | ByRef] [ParamArray] Parametername As Datentyp
Wenn der Parameter optional ist, müssen Sie bei seiner Deklaration auch einen Standardwert angeben. Die Syntax zur Angabe eines Standardwerts lautet folgendermaßen:
Optional [ByVal | ByRef] Parametername As Datentyp = Standardwert
Parameter als lokale Variablen
Wenn die Steuerung an die Prozedur übergeben wird, wird jeder Parameter als lokale Variable behandelt. Dies bedeutet, dass die Lebensdauer der Parameter derjenigen der Prozedur entspricht und ihr Gültigkeitsbereich die gesamte Prozedur umfasst.
Aufrufsyntax
Sub-Prozeduren werden explizit mit eigenständigen Aufrufanweisungen aufgerufen. Sie können nicht unter Verwendung ihres Namens in einem Ausdruck aufgerufen werden. Sie müssen Werte für alle nicht optionalen Argumente angeben und die Argumentliste in Klammern setzen. Wenn keine Argumente angegeben werden, können Sie die Klammern auch weglassen. Die Verwendung des Call-Schlüsselworts ist optional, wird aber empfohlen.
Die Syntax für den Aufruf einer Sub-Prozedur lautet wie folgt:
[Call] Subname[(Argumentliste)]
Sie können eine Sub-Methode außerhalb der Klasse aufrufen, in der sie definiert ist. Zunächst müssen Sie mithilfe des New-Schlüsselworts eine Instanz der Klasse erstellen oder eine Methode aufrufen, die eine Instanz der Klasse zurückgibt. Weitere Informationen finden Sie unter Gewusst wie: Verwenden des Schlüsselworts "New". Anschließend können Sie die folgende Syntax verwenden, um die Sub-Methode für das Instanzobjekt aufzurufen:
Objekt.Methodenname[(Argumentliste)]
Weitere Informationen finden Sie unter Gewusst wie: Durchführen von Aktionen mit Methoden.
Darstellung von Deklaration und Aufruf
Die folgende Sub-Prozedur meldet den Computerbenutzern, welche Aufgabe die Anwendung als nächste ausführt. Außerdem wird ein Timestamp angezeigt. Anstatt den Code zu Beginn jeder Aufgabe zu duplizieren, wird tellOperator von verschiedenen Stellen durch die Anwendung aufgerufen. Bei jedem Aufruf wird eine Zeichenfolge an das task -Argument übergeben, die die gestartete Aufgabe identifiziert.
Sub tellOperator(ByVal task As String)
Dim stamp As Date
stamp = TimeOfDay()
MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub
Im folgenden Beispiel wird ein typischer Aufruf von tellOperator dargestellt.
Call tellOperator("file update")
Siehe auch
Aufgaben
Gewusst wie: Aufrufen einer Prozedur, die keinen Wert zurückgibt
Gewusst wie: Aufrufen eines Ereignishandlers in Visual Basic
Konzepte
Parameter und Argumente von Prozeduren