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 LibreOfficeDev 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 LibreOfficeDev 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.

Ícone de aviso

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