If...Else VBA


O comando If...Then funciona como um condicional para o VBA: executa uma ação (códigos) somente se a condição (logo após o If) for igual a True (ou resultar em True).

    Sub condicional()
        If True then 'If [Condição] Then (neste exemplo a condição é True)
            Msgbox "Este Msgbox deve aparecer"
        End If

        If False then
            Msgbox "Este Msgbox não deve aparecer"
        End If
    End Sub

O comando If funciona adequadamente apenas para as condições resultantes em: True ou False.

Note que os comandos a serem executados ficam entre o If e o End If.

    'If Condicao Then
    '   Codigos
    '   ...
    'End If

A condição pode vir também de uma variável.

    verificar_condicao = True

    If verificar_condicao then
        Msgbox "Este Msgbox deve aparecer"
    End If

Para se executar um comando caso a condição do código If seja False, utilize o Else.

    verificar_condicao = False

    If verificar_condicao then
        Msgbox "Este Msgbox não deve aparecer" 'Pois verificar_condicao é False
    Else 'Porém verificar_condicao sendo False o código abaixo será executado
        Msgbox "Este Msgbox deve aparecer"
    End If

Pode-se utilizar os Operadores de Comparação para criar condições.

    Numero = 4

    If 3 <= Numero then 'Que resultará em True
        Msgbox "Este Msgbox deve aparecer"
    Else
        Msgbox "Este Msgbox não deve aparecer"
    End If

Através da interação com o usuário, pode-se criar execuções inteligentes:

Sub If_Exemplo()

    Dim Resposta As Integer

    Resposta = Inputbox("Quanto é 10 - 3?")

    If Resposta = 7 Then
        Msgbox "Resposta correta!"
    Else
        Msgbox "Resposta errada"
    End If

End Sub

Note que o sinal de igual = utilizado após If é um operador condicional, ou seja, neste caso não tem a função de associar um valor, mas de verificar se a condição foi atendida.


ElseIf

É possível utilizar ElseIf caso seja necessário incluir mais condições na mesma instrução If.

Sub ElseIf_Exemplo()

    Dim Nota As Single

    Resposta = Inputbox("Insira a sua nota da prova?")

    If Resposta = 10 Then
        Msgbox "Parabéns, você acertou tudo!"
    ElseIf Resposta < 10 And Resposta >= 6 Then
        Msgbox "Você passou na prova"
    ElseIf Resposta < 6 And Resposta >= 0 Then
        Msgbox "Você não passou na prova"
    Else
        Msgbox "Digite uma nota válida"
    End If

End Sub

Múltiplos True em ElseIf

Na utilização de ElseIf é possível que múltiplas condicionas resultem em True. Neste caso apenas a primeira, em ordem de execução (de cima para baixo) será executada, e as demais não.

Sub ElseIf_Multiplos_True()

    Numero=5

    If Numero > 6 Then
        Msgbox "Essa mensagem não vai aparecer"
    ElseIf Numero > 4 Then
        Msgbox "Essa mensagem vai aparecer"
    ElseIf Numero > 2 Then
        Msgbox "Essa mensagem não vai aparecer"
    Else
        Msgbox "Essa mensagem não vai aparecer"
    End If

End Sub
Depurar If


Fixando o Aprendizado

Exercício Sugerido

Message Box


SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.

Excel ® é uma marca registrada da Microsoft Corporation.

© 2019 SuperExcelVBA | SOBRE

Protected by Copyscape