120 Lições | Gratuito Online | Autor: Júlio Battisti
Em um primeiro grupo, temos as chamadas estruturas de decisão. São estruturas que realizam um teste lógico, e executam determinados comandos quando o teste resultar verdadeiro, ou um conjunto diferente de comandos, quando o teste resultar falso. Agora passaremos a analisar as estruturas de decisão, disponíveis no VBA.
A estrutura If...Then, é uma das estruturas de decisão mais conhecidas. Toda linguagem de programação implementa esta estrutura. É utilizada para executar determinados comandos, caso uma condição seja verdadeira. A forma geral desta estrutura é a seguinte:
If condição Then
Comando1
Comando2
...
Comandon
End If.
Uma condição é testada, caso a condição seja verdadeira, um ou mais comandos podem ser executados. Considere o exemplo a seguir:
Dim x, y
x=10
y=15
If x<y Then
MsgBox "x é menor do que y"
End If
Neste exemplo, a mensagem " x é menor do que y", será exibida, uma vez que o teste x<y é verdadeiro, conforme podemos constatar pelos valores atribuídos as variáveis x e y.
A estrutura If...Then...Else, acrescenta mais uma possibilidade a estrutura If...Then. É utilizada para executar determinados comandos, caso uma condição seja verdadeira, ou um conjunto diferente de comandos, caso a condição seja falsa. A forma geral desta estrutura é a seguinte:
If condição Then
Comando1
Comando2
...
Comandon
Else
Comando1
Comando2
...
Comandon
End If
Uma condição é testada, caso a condição seja verdadeira, um determinado comando, ou conjunto de comandos será executado; caso a condição seja falsa, um comando, ou conjunto de comandos diferentes, será executado. Considere o exemplo a seguir:
Dim x, y
x=15
y=10
If x<y Then
MsgBox "x é menor do que y"
Else
MsgBox "x é maior do que y"
End If
Neste exemplo, a mensagem " x é maior do que y", será exibida, uma vez que o teste x<y é falso, conforme podemos constatar pelos valores atribuídos as variáveis x e y.
A estrutura If...Then...ElseIf, nos dá uma poder maior, para testarmos diversas possibilidades. É utilizada quando precisamos realizar mais do que um teste lógico. Neste caso, para cada novo teste que se faça necessário, utilizamos um ElseIf. A forma geral desta estrutura é a seguinte:
If condição Then
'Comandos a serem executados, caso a condição seja verdadeira.
Comando1
Comando2
...
Comandon
ElseIf condição2 then
'Comandos a serem executados, caso a condição2 seja verdadeira.
Comando1
Comando2
...
Comandon
ElseIf condição3 then
'Comandos a serem executados, caso a condição3 seja verdadeira.
Comando1
Comando2
...
Comandon
...
ElseIf condiçãon then
'Comandos a serem executados, caso a condição n seja verdadeira.
Comando1
Comando2
...
Comandon
Else
'Comandos a serem executados, caso nenhuma das condições anteriores seja verdadeira.
Comando1
Comando2
...
Comandon
End If
Uma condição é testada, caso a condição seja verdadeira, um determinado comando, ou conjunto de comandos será executado; caso a condição seja falsa, podemos fazer um segundo teste (condição-2). Caso a segunda condição seja verdadeira, um determinado comando, ou conjunto de comandos será executado, a assim por diante, para n condições. Caso nenhuma das condições seja verdadeira, os comandos após a cláusula Else, serão executados. É importante observar que somente um dos conjuntos de comandos será executado. Quando uma condição verdadeira for encontrada, o conjunto de comandos associado a essa condição será executado e a execução segue a partir do End If, isto é, as demais condições da estrutura não serão testadas.
Considere o exemplo a seguir:
Dim x, y
Dim z, k
Dim w, p
x=35
y=30
z=25
k=20
w=15
p=10
If x<y Then
MsgBox "x é menor do que y"
ElseIf x<z Then
MsgBox "x é menor do que z"
ElseIf x<k Then
MsgBox "x é menor do que k"
ElseIf x<w Then
MsgBox "x é menor do que w"
ElseIf x<p Then
MsgBox "x é menor do que p"
Else
MsgBox "x é o maior dos números"
End If
Neste exemplo, a mensagem " x é maior dos números", será exibida, uma vez que todos os testes anteriores falham (pois x é o maior número), com isso somente será executado o último MsgBox, que faz parte do Else.
Os teste vão sendo feitos. Quando o teste de um dos ElseIf for verdadeiro, os comandos abaixo do ElseIf verdadeiro, serão executados e o laço será encerrado. Em resumo, quando um dos ElseIf apresentar um teste verdadeiros, os comandos relacionados serão executados, e os demais não serão avaliados, seguindo a execução para o primeiro comando, após o End If.
Quando precisamos realizar uma série de testes, é mais eficiente utilizarmos uma única estrutura Select...Case, do que utilizarmos uma série de testes utilizando a estrutura If...Then...ElseIf.
O funcionamento da estrutura Select...Case, é bastante intuitivo.
Considere o exemplo a seguir:
Dim x
x=10
Select Case x
Case 2
MsgBox "X vale 2 !"
Case 4
MsgBox "X vale 4 !"
Case 6
MsgBox "X vale 6 !"
Case 8
MsgBox "X vale 8 !"
Case 10
MsgBox "X vale 10 !"
Case Else
MsgBox "X não é um número par, menor do que 12 "
End Select
A estrutura Select Case x, vai testar o valor de x. Em cada um dos Case, o valor de x está sendo testado. Quando for encontrado um valor coincidente com o de x, os comandos abaixo deste Case serão executados. No nosso exemplo, o comando MsgBox "X vale 10 !", abaixo de Case 10, será executado. O comando abaixo do Case Else somente será executado, se todos os testes anteriores falharem.
O uso da estrutura Select...Case, torna o código mais eficiente e de mais fácil leitura.
Na próxima lição veremos mais algumas estruturas de controle, disponíveis no VBA.
VOCÊ CONHECE A UNIVERSIDADE DO EXCEL? |
UNIVERSIDADE PRÁTICA DO EXCEL - Domine o Excel, do Básico até a Criação de Planilhas Profissionais com Excel e VBA! Aplica-se ao Excel 2019, 2016, 2013 e 2010! |
22 Cursos - 925 Vídeo-Aulas - 120:42 horas - Só R$ 97,00 |
Para Todos os Detalhes, Acesse: |