Expressió If… Then… Else
Defineix un o més blocs d'expressions que només voleu executar si una condició determinada és certa.
Sintaxi:
If condition=true Then Statement block [ElseIf condition=true Then] Statement block [Else] Statement block EndIf
En lloc d'Else If podeu escriure ElseIf, en lloc d'End If podeu escriure EndIf.
Paràmetres:
L'expressió If...Then executa blocs de programa segons les condicions determinades. Quan el LibreOffice Basic troba una expressió If, la condició es prova. Si la condició és certa, s'executen totes les expressions posteriors fins a la propera expressió Else o ElseIf. Si la condició és falsa, i una expressió ElseIf segueix, el LibreOffice Basic prova la següent condició i executa les expressions següents si la condició és certa. Si és falsa, el programa continua amb la següent expressió ElseIf o Else. Les expressions que segueixen a Else s'executen només si cap de les condicions que s'han provat anteriorment no era certa. Després d'avaluar totes les condicions, i d'executar les expressions corresponents, el programa continua amb l'expressió que segueix a EndIf.
Podeu imbricar múltiples expressions If...Then.
Les expressions Else i ElseIf són opcionals.
Podeu utilitzar GoTo i GoSub per saltar fora d'un bloc If...Then, però no per saltar dins d'una estructura If...Then.
L'exemple següent us permet introduir la data de venciment d'un producte, i determina si la data de venciment ha passat.
Exemple:
Sub ExampleIfThenDate
Dim sDate As String
Dim sToday As String
sDate = InputBox("Introduïu la data de venciment (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 "La data de venciment ha passat"
ElseIf sDate > sToday Then
MsgBox "La data de venciment encara no ha passat"
Else
MsgBox "La data de venciment és avui"
End If
End Sub