\<bookmark_value\>If statement\</bookmark_value\>

If...Then...Else Statement

Defines one or more statement blocks that you only want to execute if a given condition is 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.


The \<emph\>If...Then\</emph\> statement executes program blocks depending on given conditions. When LibreOffice Basic encounters an \<emph\>If\</emph\> statement, the condition is tested. If the condition is True, all subsequent statements up to the next \<emph\>Else\</emph\> or \<emph\>ElseIf\</emph\> statement are executed. If the condition is False, and an \<emph\>ElseIf\</emph\> statement follows, LibreOffice Basic tests the next condition and executes the following statements if the condition is True. If False, the program continues either with the next \<emph\>ElseIf\</emph\> or \<emph\>Else\</emph\> statement. Statements following \<emph\>Else\</emph\> are executed only if none of the previously tested conditions were True. After all conditions are evaluated, and the corresponding statements executed, the program continues with the statement following \<emph\>EndIf\</emph\>.

You can nest multiple \<emph\>If...Then\</emph\> statements.

\<emph\>Else\</emph\> and \<emph\>ElseIf\</emph\> statements are optional.

Warning Icon

You can use \<emph\>GoTo\</emph\> and \<emph\>GoSub\</emph\> to jump out of an \<emph\>If...Then\</emph\> block, but not to jump into an \<emph\>If...Then\</emph\> structure.

The following example enables you to enter the expiration date of a product, and determines if the expiration date has passed.


Sub ExampleIfThenDate

Dim sDate As String

Dim sToday As String

    sDate = InputBox("Enter the expiration date (MM.DD.YYYY)")

    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 "The expiration date has passed"

    ElseIf sDate > sToday Then

        MsgBox "The expiration date has not yet passed"


        MsgBox "The expiration date is today"

    End If

End Sub