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.

Í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