If...Then...Else Statement

Определяет один или несколько участков программы, которые должны выполняться, только если заданное условие имеет значение True.

Синтаксис

If condition=true Then Statement block [ElseIf condition=true Then] Statement block [Else] Statement block EndIf

Instead of Else If you can write ElseIf, instead of End If you can write EndIf.

Параметры:

Инструкция If...Then используется для выполнения участков программы в зависимости от заданных условий. Когда LibreOffice Basic встречает инструкцию If, то проверяется логическое условие. Если оно равно True, то выполняются все дальнейшие инструкции вплоть до следующей инструкции Else или ElseIf. Если это условие равно False и встречается инструкция ElseIf, то LibreOffice Basic проверяет следующее условие и выполняет дальнейшие инструкции, если это условие равно True. Если оно равно False, программа переходит к следующей инструкции ElseIf или Else. Инструкции после Else выполняются только в том случае, если ни одно из предыдущий условий не было равно True. После того как все условия проверены и соответствующие инструкции выполнены, программа переходит к инструкции, следующей за EndIf.

Инструкции If...Then можно вкладывать одну в другую.

Else и ElseIf — необязательные инструкции.

Значок предупреждения

Можно использовать GoTo и GoSub, чтобы выйти из участка программы, ограниченного If...Then, но нельзя с их помощью войти в структуру If...Then.


Следующий пример даёт возможность ввести срок годности продукта и сообщает, истёк ли этот срок годности.

Пример:

Sub ExampleIfThenDate

Dim sDate As String

Dim sToday As String

    sDate = InputBox("Введите срок годности (ММ.ДД.ГГГГ)")

    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 "Срок годности истёк"

    ElseIf sDate > sToday Then

        MsgBox "Срок годности еще не истёк"

    Else

        MsgBox "Срок годности истекает сегодня"

    End If

End Sub