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.
É 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
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
Exercício Sugerido
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.
© 2024 SuperExcelVBA | SOBRE