If...Then...Else-Anweisung (Visual Basic)

Aktualisiert: November 2007

Führt abhängig vom Wert eines Ausdrucks eine Reihe von Anweisungen aus.

If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If
-or-
If condition Then [ statements ] [ Else [ elsestatements ] ]

Bestandteile

  • condition
    Erforderlich. Ausdruck. Muss True oder False sein oder einen Datentyp ergeben, der implizit in Boolean konvertiert werden kann.

  • Then
    Bei einzeiliger Syntax erforderlich, bei mehrzeiliger Syntax optional.

  • statements
    Optional. Eine oder mehrere Anweisungen nach If...Then, die ausgeführt werden, wenn conditionTrue ist.

  • elseifcondition
    Erforderlich, wenn ElseIf vorhanden ist. Ausdruck. Muss True oder False sein oder einen Datentyp ergeben, der implizit in Boolean konvertiert werden kann.

  • elseifstatements
    Optional. Eine oder mehrere Anweisungen nach ElseIf...Then, die ausgeführt werden, wenn elseifconditionTrue ist.

  • elsestatements
    Optional. Eine oder mehrere Anweisungen, die ausgeführt werden, wenn kein vorheriger condition-Ausdruck oder elseifcondition-Ausdruck True ist.

  • End If
    Beendet den If...Then...Else-Block.

Hinweise

Die einzeilige Variante bietet sich bei einfachen, kurzen Tests an. Die mehrzeilige Variante ist dagegen strukturierter und flexibler und kann in der Regel leichter gelesen, gepflegt und gedebuggt werden.

Beim Auftreten einer mehrzeiligen If...Then...Else-Anweisung wird condition getestet. Wenn conditionTrue ist, werden die Anweisungen nach Then ausgeführt. Wenn conditionFalse ist, werden die einzelnen ElseIf-Anweisungen nacheinander ausgewertet. Sobald ein Wert für elseifconditionTrue ergibt, werden die Anweisungen ausgeführt, die unmittelbar auf das zugehörige Then folgen. Wenn keine elseifconditionTrue ist oder wenn keine ElseIf-Anweisungen vorhanden sind, werden die Anweisungen nach Else ausgeführt. Nach der Ausführung der Anweisungen nach Then, ElseIf oder Else wird die Anweisung nach End If ausgeführt.

Tipp:

Die Select...Case-Anweisung (Visual Basic) kann besonders in Situationen sinnvoll sein, in denen ein einzelner Ausdruck mit verschiedenen möglichen Werten ausgewertet wird.

Die einzeilige Syntax ermöglicht die Ausführung mehrerer Anweisungen als Folge einer If...Then-Entscheidung. Alle Anweisungen müssen sich in derselben Zeile befinden und durch Doppelpunkt getrennt werden. Das folgende Beispiel veranschaulicht dies.

If A > 10 Then A = A + 1 : B = B + A : C = C + B

Bei mehrzeiliger Syntax muss die If-Anweisung die einzige Anweisung in der ersten Zeile sein. Von den Anweisungen ElseIf, Elseund End If kann nur eine Zeilenmarke stehen. Der mehrzeilige If...Then...Else-Block muss mit einer End If-Anweisung enden.

Sie können bestimmen, ob eine If-Anweisung eine mehrzeilige Syntax einleitet, indem Sie den Code überprüfen, der auf das Then-Schlüsselwort folgt. Wenn in derselben Anweisung auf Then etwas anderes als ein Kommentar folgt, wird die Anweisung als einzeilige If-Anweisung behandelt. Wenn Then nicht vorhanden ist, muss es sich um den Anfang einer mehrzeiligen If...Then...Else-Anweisung handeln.

Die ElseIf-Klausel und die Else-Klausel sind optional. In einer mehrzeiligen If...Then...Else-Anweisung können beliebig viele ElseIf-Klauseln verwendet werden, nach einer Else-Klausel sind sie jedoch nicht zulässig. Mehrzeilige Varianten können geschachtelt werden.

Beispiel

Im folgenden Beispiel wird die einzeilige und die mehrzeilige Variante der If...Then...Else-Anweisung dargestellt.

Dim number, digits As Integer
Dim myString As String
number = 53
If number < 10 Then
    digits = 1
ElseIf number < 100 Then
    digits = 2
Else
    digits = 3
End If
If digits = 1 Then myString = "One" Else myString = "More than one"

Im vorherigen Beispiel ist die ElseIf-Bedingung True, und digits wird der Wert 2 zugewiesen. Die letzte Anweisung weist anschließend myString den Wert "More than one" zu.

Siehe auch

Referenz

#If...Then...#Else-Direktive

Choose-Funktion

Select...Case-Anweisung (Visual Basic)

Switch-Funktion