If...Then...Else Statement
Lause määrittelee yhden tai useamman lauselohkon, jotka on tarkoitus suorittaa vain, jos annettu ehto täyttyy.
Syntaksi:
If ehto_1=true Then lauselohko_1 [ElseIf ehto_m=true Then] lauselohko_m [Else] lauselohko_n EndIf
Else If voidaan kirjoittaa ElseIf ja End If voidaan kirjoittaa EndIf.
Parametrit:
If...Then -lause suorittaa ohjelmalohkoja annettujen ehtojen mukaisesti. Kun LibreOffice Basic tulkitsee If lauseen, ehto_1 testataan. Jos ehto_1:n totuusarvo on True (tosi), kaikki seuraavat lauseet suoritetaan seuraavaan Else- tai ElseIf-lauseeseen asti. Jos ehto_1:n arvo on False (epätosi) ja ElseIf-lause seuraa, LibreOffice Basic testaa seuraavan ehdon ja suorittaa seuraavat lauseet, jos ehto on arvoltaan True. Jos arvo on False, ohjelma jatkaa seuraavasta ElseIf- tai Else-lauseesta. Else-osan lauseet suoritetaan vain, jos mikään edellisistä testeistä ei ole tuottanut arvoa True. Kun kaikki ehdot on arvioitu ja niitä vastaavat rivit suoritettu, ohjelma jatkuu EndIf-rivin jälkeisestä lauseesta.
Useita If...Then -lauseita voi asettaa sisäkkäin.
Else- ja ElseIf-lauseet ovat valinnaisia.
GoTo- tai GoSub-käskyä voi käyttää If...Then-lohkosta poistumiseen, muttei If...Then-rakenteeseen sisään siirtymiseen.
Seuraavassa esimerkissä on mahdollista syöttää tuotteen vanhentumispäivä ja määrittää, onko vanhentumispäivä jo ohitettu.
Esimerkki:
Sub ExampleIfThenDate
Dim sDate As String
Dim sToday As String
sDate = InputBox("Anna vanhentumispäivä (PP.KK.VVVV)")
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 "Vanhentumispäivä on ohitettu"
ElseIf sDate > sToday Then
MsgBox "Vanhentumispäivä ei ole vielä mennyt"
Else
MsgBox "Vanhentumispäivä on tänään"
End If
End Sub