If...Then...Else Statement
Difinas almenaŭ unu ordonan blokon rulota nur se specifa kondiĉo estas vera.
Sintakso:
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.
Parametroj:
La ordono If...Then rulas programajn blokojn depende de donitaj kondiĉoj. Kiam LibreOffice Basic aliras ordonon If, ĝi testas la kondiĉon. Se la kondiĉo estas vera, ĝi rulas ĉiujn postajn ordonojn ĝis la venonta ordono Else aŭ ElseIf. Se la kondiĉo estas falsa, kaj ordono ElseIf sekvas, LibreOffice Basic testas la sekvantan kondiĉon kaj rulas la sekvantajn ordonojn se la kondiĉo estas vera. Se falsa, la programo daŭrigas laŭ aŭ la venonta ElseIf aŭ Else. Ordonoj sekvantaj la ordonon Else ruliĝas nur se neniu el la antaŭe testitaj kondiĉoj estis vera. Komputinte ĉiujn kondiĉojn, kaj rulinte la korespondajn ordonojn, la programo daŭrigas laŭ la ordono kiu sekvas la EndIf.
Oni povas ingi plurajn ordonojn If...Then.
Ordonoj Else kaj ElseIf estas nedevigaj.
Oni povas uzi ordonojn GoTo kaj GoSub por salti el If...Then bloko, sed ne por salti en strukturon If...Then.
La jena ekzemplo ebligas al uzanto entajpi la finiĝan daton de produkto, kaj komputas ĉu la finiĝa dato jam pasis.
Ekzemplo:
Sub ExampleIfThenDate
Dim sDate As String
Dim sToday As String
sDate = InputBox("Tajpu la finiĝan daton (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 finiĝa dato jam pasis"
ElseIf sDate > sToday Then
MsgBox "La finiĝa dato ankoraŭ ne pasis"
Else
MsgBox "La finiĝa dato estas hodiaŭ"
End If
End Sub