Microsoft® Visual Basic® Scripting Edition Verwenden von Bedingungsanweisungen |
VBScript-Tutorium Zurück | Weiter |
Sie können den Ablauf eines Skripts mit Bedingungs- und Schleifenanweisungen steuern. Mit Hilfe von Bedingungsanweisungen können Sie VBScript-Code schreiben, mit dem Entscheidungen getroffen und Aktionen wiederholt werden können. Die folgenden Bedingungsanweisungen sind in VBScript verfügbar:
- Anweisung If...Then...Else
- Anweisung Select Case
Die Anweisung If...Then...Else wird verwendet, um zu bestimmen, ob eine Bedingung True oder False ist, und um anzugeben, ob je nach Ergebnis eine oder weitere Anweisungen ausgeführt werden. Im allgemeinen ist die Bedingung ein Ausdruck, der einen Vergleichsoperator zum Vergleichen eines Wertes oder einer Variablen mit einem/r anderen verwendet. Informationen zu Vergleichsoperatoren finden Sie unter Vergleichsoperatoren. If...Then...Else-Anweisungen können nach Bedarf auf beliebig vielen Ebenen verschachtelt werden.
Ausführen von Anweisungen, wenn eine Bedingung "True" ist
Um nur eine Anweisung auszuführen, wenn eine Bedingung True ist, verwenden Sie die einzeilige Syntax für die If...Then...Else-Anweisung. Das folgende Beispiel zeigt die einzeilige Syntax. Beachten Sie, daß in diesem Beispiel das Schlüsselwort Else weggelassen wird.Zum Ausführen von mehr als einer Codezeile müssen Sie die mehrzeilige oder Blocksyntax verwenden. Diese Syntax enthält die Anweisung End If, wie im folgenden Beispiel gezeigt:Sub FixDate() Dim myDate myDate = #2/13/95# If myDate < Now Then myDate = Now End SubSub AlertUser(value) If value = 0 Then AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True End If End SubAusführen bestimmter Anweisungen, wenn eine Bedingung "True" ist, und Ausführen anderer Anweisungen, wenn eine Bedingung "False" ist
Mit der Anweisung If...Then...Else können Sie zwei Blöcke mit ausführbaren Anweisungen definieren: ein Block wird ausgeführt, wenn die Bedingung True ist, der andere wird ausgeführt, wenn die Bedingung False ist.Sub AlertUser(value) If value = 0 Then AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True Else AlertLabel.Forecolor = vbBlack AlertLabel.Font.Bold = False AlertLabel.Font.Italic = False End If End SubEntscheiden zwischen mehreren Alternativen
Mit Hilfe einer Variation der If...Then...Else-Anweisung können Sie aus mehreren Alternativen auswählen. Durch das Hinzufügen der Klausel ElseIf können Sie die Funktionalität der If...Then...Else-Anweisung erweitern, so daß der Programmablauf auf mehreren Möglichkeiten basiert. Beispiel:Sie können nach Bedarf beliebig viele ElseIf-Klauseln hinzufügen, um alternative Möglichkeiten bereitzustellen. Durch eine zu häufige Verwendung der ElseIf-Klausel wird der Code allerdings umständlich. Eine bessere Möglichkeit zum Auswählen aus mehreren Alternativen bietet die Anweisung Select Case.Sub ReportValue(value) If value = 0 Then MsgBox value ElseIf value = 1 Then MsgBox value ElseIf value = 2 then Msgbox value Else Msgbox "Wert ausserhalb des Bereichs!" End If
Die Select Case-Struktur bietet eine Alternative zu If...Then...ElseIf, um gezielt einen Anweisungsblock aus mehreren Anweisungsblöcken auszuführen. Eine Select Case-Anweisung bietet dieselbe Funktionalität wie die If...Then...Else-Anweisung, macht den Code jedoch effizienter und leichter lesbar.Eine Select Case-Struktur arbeitet mit einem einzelnen Testausdruck, der einmalig auf der obersten Ebene der Struktur ausgewertet wird. Das Ergebnis der Struktur wird dann mit den Werten für jeden Case in der Struktur verglichen. Gibt es eine Übereinstimmung, wird der mit diesem Case verknüpfte Anweisungsblock ausgeführt:
Beachten Sie, daß die Select Case-Struktur einen Ausdruck einmalig auf der obersten Ebene der Struktur auswertet. Im Gegensatz dazu kann die If...Then...ElseIf-Struktur einen anderen Ausdruck für jede ElseIf-Anweisung auswerten. Sie können eine If...Then...ElseIf -Struktur nur dann durch eine Select Case-Struktur ersetzen, wenn jede ElseIf-Anweisung denselben Ausdruck auswertet.Select Case Document.Form1.CardType.Options(SelectedIndex).Text Case "MasterCard" DisplayMCLogo ValidateMCAccount Case "Visa" DisplayVisaLogo ValidateVisaAccount Case "American Express" DisplayAMEXCOLogo ValidateAMEXCOAccount Case Else DisplayUnknownImage PromptAgain End Select