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

Prozeduren in Visual Basic

Function-Prozeduren

Property-Prozeduren

Operatorprozeduren

Parameter und Argumente von Prozeduren

Referenz

Sub-Anweisung (Visual Basic)