Conteúdo
Índice 🔎︎

# 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