Inhalte
Index 🔎︎

# 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 Bedingung ElseIf nicht erfüllt ist (False), fährt das Programm bei der nächsten Anweisung ElseIf (falls vorhanden) oder Anweisung Else fort. Anweisungen im Block Else 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 EndIf fort.

Sie können mehrere Anweisung If...Then verschachteln.

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

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