Instrução If...Then...Else
Define um ou mais blocos de instruções que só se pretenda executar se uma certa condição for Verdadeira.
Sintaxe:
If condição=true Then bloco de instruções [ElseIf condição=true Then] bloco de instruções [Else] bloco de instruções EndIf
Em vez de Else pode escrever ElseIf e em vez de End pode escrever EndIf.
Parâmetros:
A instrução If...Then executa blocos de programas dependendo de certas condições. Quando o LibreOffice Basic encontra uma instrução If, a condição é testada. Se a condição for True, todas as instruções seguintes até à próxima instrução Else ou ElseIf são executadas. Se a condição for False e se seguir uma instrução ElseIf, o LibreOffice Basic testa a condição seguinte e executa as seguintes instruções se a condição for True. Se for False, o programa continua com a próxima instrução ElseIf ou Else. As instruções que se seguem a Else só são executadas se nenhuma das condições previamente testadas for True. Depois de avaliadas todas as condições, e executadas as instruções correspondentes, o programa continua com a instrução que se segue a EndIf.
Pode imbricar múltiplas instruções If...Then.
As instruções Else e ElseIf são opcionais.
Pode utilizar GoTo e GoSub para sair de um bloco If...Then, mas não para entrar numa estrutura If...Then.
O seguinte exemplo permite-lhe introduzir a data de validade de um produto, e determina se esta já foi ultrapassada.
Exemplo:
Sub ExampleIfThenDate
Dim sDate As String
Dim sToday As String
sDate = InputBox("Introduza a data de validade (DD.MM.AAAA)")
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 "A data de validade já passou"
ElseIf sDate > sToday Then
MsgBox "A data de validade ainda não passou"
Else
MsgBox "A data de validade termina hoje"
End If
End Sub