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.

Ikona ostrzeżenia

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