|
Microsoft® Visual Basic® Scripting Edition VBScript-Prozeduren |
VBScript-Tutorium Zurück | Weiter
|
In VBScript gibt es zwei Arten von Prozeduren, die Sub-Prozedur und die Function-Prozedur.
Sub-Prozeduren
Eine Sub-Prozedur ist eine Folge von VBScript-Anweisungen, die zwischen den Anweisungen Sub und End Sub eingeschlossen ist, und die Aktionen ausführt, aber keine Werte zurückgibt. Eine Sub-Prozedur kann Argumente (Konstanten, Variablen oder Ausdrücke, die von einer aufrufenden Prozedur übergeben wurden) übernehmen. Wenn eine Sub-Prozedur keine Argumente hat, muß ihre Sub-Anweisung ein leeres Klammernpaar enthalten.Die folgende Sub-Prozedur verwendet zwei integrierte (oder eingebaute) VBScript-Funktionen, MsgBox und InputBox, um einen Benutzer zur Eingabe von Informationen aufzufordern. Dann zeigt sie das Ergebnis einer Berechnung an, die auf diesen Informationen basiert. Die Berechnung wird in einer mit VBScript erstellten Function-Prozedur ausgeführt. Diese wird in der Behandlung der nachfolgenden Function-Prozedur ebenfalls gezeigt.
Sub KonvertTemp() temp = InputBox("Geben Sie die Temperatur in Fahrenheit ein.", 1) MsgBox "Die Temperatur ist " & Celsius(temp) & " Grad Celsius." End Sub
Eine Function-Prozedur ist eine Folge von VBScript-Anweisungen, die zwischen den Anweisungen Function und End Function eingeschlossen ist. Eine Function-Prozedur ist einer Sub-Prozedur ähnlich, kann aber auch einen Wert zurückgeben. Eine Function-Prozedur kann Argumente (Konstanten, Variablen oder Ausdrücke, die von einer aufrufenden Prozedur übergeben werden) übernehmen. Wenn eine Function-Prozedur keine Argumente hat, muß ihre Function-Anweisung ein leeres Klammernpaar enthalten. Eine Function-Prozedur gibt Werte zurück, indem ihrem Namen in einer oder mehreren Anweisung(en) der Prozedur ein Wert zugewiesen wird. Der Typ des Rückgabewerts einer Function-Prozedur ist immer ein Variant.Die Funktion Celsius im folgenden Beispiel berechnet aus Gradwerten in Fahrenheit die entsprechenden Werte in Grad Celsius. Beim Aufruf der Funktion aus der Sub-Prozedur KonvertTemp wird eine Variable mit dem Argumentwert an die Funktion übergeben. Das Ergebnis der Berechnung wird an die aufrufende Prozedur zurückgegeben und in einem Meldungsfeld angezeigt.
Sub KonvertTemp() temp = InputBox("Geben Sie die Temperatur in Fahrenheit ein.", 1) MsgBox "Die Temperatur ist " & Celsius(temp) & " Grad Celsius." End Sub Function Celsius(GradF) Celsius = (GradF - 32) * 5 / 9 End Function
Jedes Datenelement wird Ihrer Prozedur über ein Argument übergeben. Argumente dienen als Platzhalter für die Daten, die Sie Ihrer Prozedur übergeben möchten. Wenn Sie eine Prozedur mit der Sub- oder der Function-Anweisung erstellen, müssen nach dem Namen der Prozedur Klammern angegeben werden. Alle Argumente werden zwischen diesen Klammern angegeben und durch Kommas getrennt. In der folgenden Prozedur ist beispielsweise GradF ein Platzhalter für den Wert, der an die Funktion Celsius zur Konvertierung übergeben wird:
Um Daten von einer Prozedur als Rückgabe zu erhalten, müssen Sie eine Function-Prozedur definieren. Denken Sie daran, daß eine Function-Prozedur einen Wert zurückgeben kann, eine Sub-Prozedur dagegen nicht.Function Celsius(GradF) Celsius = (GradF - 32) * 5 / 9 End Function
Um eine Function-Prozedur in Ihrem Code zu verwenden, müssen Sie diese auf der rechten Seite einer Variablenzuweisung oder in einem Ausdruck verwenden. Beispiele:
oderTemp = Celsius(GradF)Um eine Sub-Prozedur aus einer anderen Prozedur aufzurufen, müssen Sie lediglich den Namen der Prozedur zusammen mit den erforderlichen Argumenten (durch Kommas getrennt) eingeben. Die Call-Anweisung ist nicht erforderlich, wenn Sie sie jedoch verwenden, müssen Sie die Argumente in Klammern einschließen.MsgBox "Die Temperatur beträgt " & Celsius(GradF) & " Grad Celsius."Das folgende Beispiel zeigt zwei Aufrufe der Prozedur MeineProz. In einem Fall wird die Call-Anweisung im Code verwendet, im anderen nicht. Beide Aufrufe haben genau dieselbe Wirkung.
Beachten Sie, daß in dem Fall ohne Call-Anweisung die Klammern weggelassen wurden.Call MeineProz(erstesArg, zweitesArg) MeineProz erstesArg, zweitesArg