Spis treści
Indeks 🔎︎

# Instrukcja If...Then...Else

Definiuje jeden lub kilka bloków instrukcji wykonywanych wyłącznie, jeśli warunek ma wartość True (prawda).

## Składnia:

    Jeżeli warunek=prawda Wykonaj polecenia [ElseIf warunek=prawda Then] polecenia [Else] polecenia EndIf

Zamiast Else If możesz napisać ElseIf, a zamiast End If możesz napisać EndIf.

## Parametry:

Instrukcja If...Then uruchamia bloki programu w zależności od określonych warunków. Po napotkaniu instrukcji If program LibreOffice Basic sprawdza podany warunek. Jeśli warunek ma wartość True (prawda), wykonywane są wszystkie kolejne instrukcje aż do napotkania instrukcji Else lub ElseIf. Jeśli warunek ma wartość False (fałsz), a dalej występuje instrukcja ElseIf, LibreOffice Basic sprawdza następny warunek i jeśli ma on wartość True (prawda), wykonuje następujące po nim polecenia. Jeśli warunek ma wartość False (fałsz), program kontynuuje wykonywanie instrukcji umieszczonych po następnym wystąpieniu ElseIf lub Else. Instrukcje występujące po Else są wykonywane wyłącznie, gdy żaden z poprzednich sprawdzanych warunków nie miał wartości True (prawda). Po sprawdzeniu wszystkich warunków i wykonaniu odpowiadających im poleceń program kontynuuje wykonywanie instrukcji umieszczonych po EndIf.

Instrukcje If...Then można zagnieżdżać.

Instrukcje Else i ElseIf są opcjonalne.

Aby wyskoczyć z bloku If...Then, można użyć poleceń GoTo i GoSub. Nie można natomiast używać, aby przejść do struktury If...Then.

Poniższy przykład pozwala na wprowadzenie terminu ważności produktu i określa, czy termin ten minął.

## Przykład:

    Sub ExampleIfThenDate
    Dim sDate As String
    Dim sToday As String
        sDate = InputBox("Wprowadź termin ważności (MM.DD.RRRR)")
        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 "Termin przydatności minął."
        ElseIf sDate > sToday Then
            MsgBox "Termin przydatności nie minął."
        Else
            MsgBox "Termin przydatności mija dzisiaj."
        End If
    End Sub