Dando continuidade ao nosso curso de VBA, vamos aprender o que é estrutura condicional e como utilizar a condição IF (Se) no VBA.
Estrutura Condicional
Antes de começar, precisamos entender o que é estrutura condicional.
A estrutura condicional possibilita que uma instrução, ou bloco de instrução, seja executada quando as condições estabelecidas sejam satisfeitas.
Com a estrutura condicional é possível realizar desvios no fluxo do programa.
Existem dois tipos de estrutura condicional, a estrutura condicional simples e a composta.
A estrutura condicional, pode ser definida através da condição IF (SE) ou do SELECT. Nesta parte do curso, iremos utilizar a condição IF para exemplificar a estrutura condicional.
A condição SELECT iremos abordar na próxima parte do curso, por isso fique atento as nossas publicações e se inscreva para receber as nossas atualizações por e-mail.
Importância
É importante entender como funciona a estrutura condicional porque ela permite que o seu programa tome decisões de acordo com dados que inserimos nele.
Com os dados, o programa toma decisões que foram estabelecidas e executa um pedaço do código em detrimento de outro.
Estrutura Condicional Simples.
Uma estrutura condicional simples estabelece que a instrução ou bloco de instrução seja executado, somente se a condição for verdadeira. Se a condição for falsa, a instrução não será executada e o programa irá para o próximo conjunto de instruções.
- Início do programa.
- SE condição for verdadeira ENTÃO
- Executa a instrução
- FIM SE
- Executa o restante do programa
- Fim do programa
No VBA, os comandos são executados em inglês, com isso, a estrutura condicional simples fica da seguinte forma no VBA.
If [condição] Then [instrução] End If
Existe uma outra forma de representar a condição SE, quando a estrutura condicional for simples, que é escrever todo o código na mesma linha, porém sem a necessidade de colocar o “End If”
If [condição] Then [instrução]
Mas lembre-se, essa forma de escrever o “SE” só funciona com estruturas condicionais simples e deve ser escrito na mesma linha.
Exemplo 1 – IF…END IF
Neste exemplo, vamos montar um programa que inicialmente irá solicitar a sua idade. Após informar a sua idade ao programa, ele irá analisar a informação inserida e irá mostrar uma mensagem se a condição que estabelecemos no programa for atingida.
Sub verificarIdade() Dim idade As Integer idade = InputBox("Digite a sua idade?") If idade >= 18 Then MsgBox "Você é maior de idade!" End If End Sub
- Começamos o desenvolvimento pela declaração da nossa subrotina(subroutine) de verficarIdade(). Lembre-se de colocar o “End Sub” no final, caso contrário ao tentar executar o programa, um erro de compilação irá ocorrer, informando que o “End Sub” está faltando.
- Declaramos a variável, que será atribuída a idade informada, de Integer e demos o nome de “idade”.
- Mostramos uma mensagem solicitando uma idade. Quando for informada a idade, ela será atribuída a variável “idade”.
- A condição IF irá verificar se a idade informada é maior ou igual a 18. Caso a idade informada seja pelo menos 18, o programa irá mostrar a mensagem “Você é maior de idade!” e encerrá a execução.
Estrutura Condicional Composta
A estrutura condicional composta, além de ter a funcionalidade da estrutura condicional simples, ela também permite que caso a condição não seja atendida, um outro bloco de instrução possa ser executado.
A estrutura condicional composta é representada pelo uso da condição “Else” ou “ElseIf” junto da condição “IF”.
Condição IF…ELSE…END IF
Quando a condição estabelecida no IF for falsa, automaticamente a instrução dentro da condição “Else” será executada.
- Início do programa.
- SE condição for verdadeira ENTÃO
- Executa a instrução A
- SENAO
- Executa instrução B
- FIM SE
- Fim do programa
If [condição] Then [instrução 1] Else [instrução 2] End If
Exemplo 2 – IF…ELSE…END IF
Vamos aproveitar o exemplo acima, iremos incluir a instrução a ser executada, caso a condição estabelecida seja falsa.
Sub verificarIdade() Dim idade As Integer idade = InputBox("Digite a sua idade?") If idade >= 18 Then MsgBox "Você é maior de idade!" Else MsgBox "Você é menor de idade!" End If End Sub
Neste código, verificamos se a idade informada é maior que 18, caso verdadeira, o programa mostra uma mensagem informando é maior de idade, caso a idade informada seja menor que 18, o programa irá informar que é menor de idade.
Condição IF…ELSEIF…END IF
Quando a condição estabelecida na condição IF for falsa, o programa irá para a condição “ElseIf” e irá verificar se a condição é atendida. Caso seja, a instrução dentro dela será executada, caso contrário o programa executará o restante das instruções.
If [condição 1] Then [instrução 1] ElseIf [condição 2] Then [instrução 2] End If
O “ElseIf” é opcional o seu uso, porém sempre que for utilizado, ele terá que vir logo em seguida ao “If”. Além do que você pode ter mais de um “ElseIf” logo após o “If”.
Quando a condição do “If” for falsa, o programa irá no “ElseIf” e irá verificar se a condição estabelecida nele é atingida, caso seja verdadeira a instrução dentro dele será executada.
Diferente do “Else” que o comando dentro dele será executado automaticamente quando a condição no “If” não for atingida, o “ElseIf” tem que ter uma condição e a instrução dentro dele será executada somente se a condição estabelecida for atingida.
Exemplo 3 – IF…ELSEIF…END IF
Neste exemplo, iremos utilizar o ELSEIF para ver como ele funciona.
Iremos utilizar o mesmo exemplo apresentado logo acima, mas no lugar do “Else”, vamos colocar o “ElseIf” e ver o que acontece.
Diferentemente do exemplo acima, quando a idade não for 18, o programa não irá mostrar a mensagem informando que é menor de idade. Ele primeiro irá verificar se a idade é maior que 12, se for verdadeira ele irá mostrar a mensagem, caso contrário o programa irá continuar o seu fluxo sem mostrar a mensagem.
Sub verificarIdade() Dim idade As Integer idade = InputBox("Digite a sua idade?") If idade >= 18 Then MsgBox "Você é maior de idade!" ElseIf idade >= 12 Then MsgBox "Você é menor de idade!" End If End Sub
Exemplo 4 – IF…ELSEIF…ELSE…END IF
Neste exemplo iremos realizar uma combinação do “ElseIf” com o “Else”.
Primeiramente o programa irá verificar se a idade informada é 18, caso verdadeira, ele irá mostrar a mensagem que é maior de idade e irá ignorar as instruções dentro do “ElseIf” e do “Else”.
Se a idade informada for menor que 18, o programa irá ignorar a instrução dentro do “If” e irá verificar a condição do “ElseIf”, se a condição for atingida, o programa irá mostrar a mensagem que é um adolescente e irá ignorar a instrução dentro do “Else”.
Agora, se a condição do “ElseIf” também não foi atingida, o programa ignora a instrução dentro dele e executa automaticamente a instrução dentro do “Else”
Sub verificarIdade() Dim idade As Integer idade = InputBox("Digite a sua idade?") If idade >= 18 Then MsgBox "Você é maior de idade!" ElseIf idade >= 12 Then MsgBox "Você é um adolescente!" Else MsgBox "Você é uma criança!" End If End Sub
Resumo da condição SE no VBA
[table id=1 /]