Conteúdo
Índice 🔎︎

# Instrução If...Then...Else

Define um ou mais blocos de instrução que você deseja executar somente se uma condição determinada 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

No lugar de Else If, você pode escrever ElseIf, no lugar de End If, você pode escrever EndIf.

## Parâmetros:

A instrução If... Then executa blocos de programa dependendo de determinadas condições. Quando o LibreOffice Basic encontra uma instrução If, a condição é testada. Se a condição for Verdadeira, todas as instruções subsequentes até a próxima instrução Else ou ElseIf são executadas. Se a condição for Falsa, e for seguida de uma instrução ElseIf o LibreOffice Basic testa a próxima condição e executa as instruções seguintes se a condição for Verdadeira. Se for Falsa, o programa continua também com a próxima instrução ElseIf ou Else. As instruções após Else são executadas apenas se nenhuma das condições previamente testadas for Verdadeira. Depois de avaliadas todas as condições e executadas as instruções correspondentes, o programa continua com a instrução após EndIf.

Você pode aninhar várias instruções If...Then.

As instruções Else e ElseIf são opcionais.

Você pode usar GoTo e GoSub para sair de um bloco If...Then, mas não para entrar em uma estrutura If...Then.

O exemplo a seguir permite que você insira a data de validade de um produto e determina se essa data já expirou.

## Exemplo:

    Sub ExampleIfThenDate
    Dim sDate As String
    Dim sToday As String
        sDate = InputBox("Digite a data de vencimento (MM.DD.YYYY)")
        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 vencimento passou"
        ElseIf sDate > sToday Then
            MsgBox "A data de vencimento ainda não passou"
        Else
            MsgBox "A data de vencimento é hoje"
        End If
    End Sub