Microsoft® Visual Basic® Scripting Edition
Sub-Anweisung
Sprachreferenz

Siehe auch


Beschreibung
Deklariert den Namen, die Argumente und den Code für den Rumpf einer Sub-Prozedur.

Syntax

[Public | Private] Sub Name [(ArgListe)]
    [Anweisungen]
    [Exit Sub]
    [Anweisungen]
End Sub

Die Syntax der Sub-Anweisung besteht aus folgenden Teilen:

Teil Beschreibung
Public Die Sub-Prozedur steht allen anderen Prozeduren in allen Skripten zur Verfügung.
Private Die Sub-Prozedur steht nur anderen Prozeduren in dem Skript zur Verfügung, in dem sie deklariert wurde.
Name Name der Sub-Prozedur gemäß den Standardkonventionen für Namen von Variablen.
ArgListe Variablenliste mit den Argumenten, die an die Sub-Prozedur beim Aufruf übergeben werden. Mehrere Variablen werden durch Kommas getrennt.
Anweisungen Eine beliebige Gruppe auszuführender Anweisungen im Rumpf der Sub-Prozedur.

Das Argument ArgListe verwendet die folgende Syntax und die folgenden Komponenten:

[ByVal | ByVal] VarName[( )]

TeilBeschreibung
ByValDas Argument wird als Wert übergeben.
ByRefDas Argument wird als Verweis übergeben.
VarNameName der Variablen, die das Argument darstellt, gemäß den Standardkonventionen für Namen von Variablen.

Anmerkungen

Sub-Prozeduren sind standardmäßig öffentlich, d.h. für alle anderen Prozeduren in Ihrem Script sichtbar, wenn sie nicht als Public oder Private angegeben wurden . Die Werte lokaler Variablen in einer Sub-Prozedur bleiben zwischen den Aufrufen der Prozedur nicht erhalten.

Der gesamte ausführbare Code muß sich in Prozeduren befinden. Sie können innerhalb einer Sub-Prozedur keine andere Sub- oder Function-Prozedur definieren.

Das Schlüsselwort Exit Sub führt zum unmittelbaren Verlassen einer Sub-Prozedur. Die Programmausführung wird mit der Anweisung fortgesetzt, die auf die Anweisung mit dem Aufruf der Sub-Prozedur folgt. Exit Sub-Anweisungen können beliebig oft an beliebigen Stellen innerhalb einer Sub-Prozedur verwendet werden.

Wie bei einer Function-Prozedur handelt es sich bei einer Sub-Prozedur um eine eigenständige Prozedur, die Argumente erhalten, eine Reihe von Anweisungen ausführen und die Werte der übergebenen Argumente ändern kann. Im Gegensatz zu einer Function-Prozedur, die einen Wert zurückgibt, kann eine Sub-Prozedur aber nicht in einem Ausdruck verwendet werden.

Der Aufruf einer Sub-Prozedur erfolgt durch Angabe des Prozedurnamens gefolgt von der Argumentliste. In der Beschreibung der Call-Anweisung finden Sie genauere Informationen zum Aufrufen von Sub-Prozeduren.


Vorsicht  Sub-Prozeduren können rekursiv sein (sie rufen sich also selbst auf, um eine bestimmte Operation durchzuführen). Rekursionen können jedoch zu Stapelüberläufen führen.

Variablen in Sub-Prozeduren können entweder explizit deklariert oder ohne Deklaration verwendet werden. Explizit (über Dim oder eine entsprechende Anweisung) in einer Prozedur deklarierte Variablen sind innerhalb dieser Prozedur immer lokal. Variablen, die in einer Prozedur verwendet, aber nicht dort deklariert werden, sind auch lokal, sofern sie nicht bereits explizit auf einer höheren Ebene außerhalb der Prozedur deklariert wurden.


Vorsicht  Eine Prozedur kann eine nicht explizit in der Prozedur deklarierte Variable zwar verwenden, aber es kann zu Namenskonflikten kommen, falls ein anderes auf Script-Ebene definiertes Element denselben Namen hat. Verwendet Ihre Prozedur eine nicht deklarierte Variable mit einem Namen, der dem Namen einer anderen Prozedur, Konstanten oder Variablen entspricht, so wird die Variable als Referenz auf den Namen interpretiert, der auf Script-Ebene definiert wurde. Deklarieren Sie Variablen explizit, um derartige Konflikte zu vermeiden. Mit der Anweisung Option Explicit können Sie die explizite Deklaration von Variablen erzwingen.


© 1997 Microsoft GmbH. Alle Rechte vorbehalten. Rechtliche Hinweise