Module
Contents
Index 🔎︎
\<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.

## Syntax:

    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.

## Parameters:

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.

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.

## Example:

    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"

        Else

            MsgBox "The expiration date is today"

        End If

    End Sub