Anweisung If...Then...Else

Definiert einen oder mehrere Anweisungsblöcke, die nur ausgeführt werden sollen, wenn eine bestimmte Bedingung erfüllt (True) ist.

Syntax:

If Bedingung=true Then Anweisungsblock [ElseIf Bedingung=true Then] Anweisungsblock [Else] Anweisungsblock EndIf

Anstelle des Else If können Sie auch Elseif schreiben, anstelle des End If Endif.

Parameter:

Die Anweisung If...Then führt abhängig von der Erfüllung der angegebenen Bedingungen bestimmte Programmblöcke aus. Trifft LibreOffice Basic auf eine If-Anweisung, so wird zunächst die Erfüllung der Bedingung geprüft. Ist die Bedingung erfüllt (True), so werden alle nachfolgenden Anweisungen bis zur nächsten Else- oder ElseIf-Anweisung ausgeführt. Ist die Bedingung nicht erfüllt (False) und es folgt eine ElseIf-Anweisung, so prüft LibreOffice die nächste Bedingung und führt im Falle ihrer Erfüllung die ihr folgenden Anweisungen aus. Wenn die ElseIf-Bedingung nicht erfüllt ist (False), fährt das Programm bei der nächsten ElseIf-Anweisung (falls vorhanden) oder Else-Anweisung fort. Anweisungen im Else-Block werden nur ausgeführt, wenn keine der zuvor geprüften Bedingungen erfüllt (True) war. Sobald alle Bedingungen ausgewertet und die dazugehörigen Anweisungen ausgeführt sind, fährt das Programm mit der Anweisung nach dem EndIf fort.

Sie können mehrere If...Then-Anweisungen verschachteln.

Else und ElseIf-Statements brauchen nicht mit angegeben zu werden, sind also optional.

Warnsymbol

Ihr Programm darf zwar mit Hilfe von GoTo und GoSub aus einer Konstruktion If...Then herausspringen, jedoch nicht in eine Struktur If...Then hineinspringen.


Das folgende Beispiel lässt Sie das Verfallsdatum eines Produkts eingeben und bestimmt dann, ob es abgelaufen ist.

Beispiel:

Sub ExampleIfThenDate

Dim sDate As String

Dim sToday As String

    sDate = InputBox("Bitte geben Sie das Verfallsdatum ein (TT.MM.JJJJ)")

    sDate = Right$(sDate, 4) + Mid$(sDate, 4, 2) + Left$(sDate, 2)

    sToday = Date$

    sToday = Right$(sToday, 4)+ Mid$(sToday, 4, 2) + Left$(sToday, 2)

    If sDate < sToday Then

        MsgBox "Das Verfalldatum ist abgelaufen"

    ElseIf sDate > sToday Then

        MsgBox "Das Verfalldatum ist noch nicht abgelaufen"

    Else

        MsgBox "Das Verfalldatum läuft heute ab"

    End If

End Sub