Académique Documents
Professionnel Documents
Culture Documents
O que ?
No VBA, a estrutra If Then Else pode ser estendida com o uso da Estrutura ElseIf.
Ela permite que voc construa um nvel de teste lgico em vrios nveis, permitindo
estender seu teste alm de uma nica condio.
Esta estrutura de controle de fluxo tem a seguinte sintaxe:
1
2
3
4
5
6
7
If [condio 1] Then
[cdigo executado caso a condio 1 seja verdadeira]
ElseIf [condio 2] Then
[cdigo executado caso a condio 2 seja verdadeira e a condio 1 seja
falsa]
Else
[cdigo executado caso nenhuma das condies anteriores seja verdadeira]
End If
Da mesma forma que no uso simples do If, a palavra-chave Else opcional e permite
que um conjunto alternativo de instrues seja executado caso a condio testada no
seja satisfeita. End If encerra o bloco de cdigo. A quantidade de instrues ElseIf
Then que podemos ter dentro de uma estrutura em teoria ilimitada, sendo possvel
analisar quantas condies quisermos de forma desacoplada. Cada teste pode ser
tratado de forma independente, no tendo vnculo direto um com o outro.
Exemplo
Neste exemplo, faremos uma implementao de uma funo que faz uma comparao
de dois nmeros. Ela deve receber como parmetro dois nmeros reais x e y e devolver
um dos seguintes valores no formato texto:
que y. Se a condio no atendida, o cdigo passa para o segundo este, que verificar
se x menor que y. Se o segundo teste tambm no for atendido, o cdigo passa para a
terceira condio que a verificao de igualdade dos nmeros.
Quando uma das condies for atendida, o cdigo ser redirecionada para a
instruo End If.
Observe a aplicao da funo Compara:
O que ?
No VBA, a estrutura If Then Else permite que determinadas instrues sejam
executadas apenas caso uma condio definida pelo programador seja satisfeita. O
bloco If deve ser encerrado com uma instruo End If.
Esta estrutura de controle de fluxo tem a seguinte sintaxe:
If [condio] Then
[cdigo executado caso a condio seja verdadeira]
Else
[cdigo executado caso a condio seja falsa]
End If
Exemplo
Neste exemplo, faremos uma implementao da funo mdulo. Ela deve receber como
parmetro um nmero real x e devolver um dos seguintes valores:
x, se x positivo;
-x, se x negativo (note que isto corresponde ao valor de x sem o sinal).
Else
Absoluto = -x
End If
End Function
No cdigo acima, a condio testada pelo If se o valor de x positivo (x > 0). Caso
esta expresso seja verdadeira, o primeiro bloco de cdigo (Absoluto = x) ser
executado, e o segundo, ignorado; caso contrrio, apenas o segundo bloco (Absoluto =
-x) ser executado.
Observe a aplicao da funo Absoluto:
Vamos aos exemplos. Criaremos dois botes. Um com a propriedade Color e o outro com a propriedade
ColorIndex.
Primeiramente entre no Editor do VBA (Alt + F11). Clique em Inserir / Mdulo. No mdulo criado digite o seguinte
cdigo:
Na primeira Sub (Procedimento) criamos uma macro que pinta o interior da clula que est ativa
(ActiveCell) utilizando a propriedade ColorIndex com a cor pr-definida 48 (Cinza).
Na segunda Sub criamos uma macro que pinta o interior da clula que est ativa utilizando a propriedade Color
com a cor em RGB (255, 0, 0) que vermelha.
Agora no Excel crie duas formas (aba Inserir/Formas) como no exemplo:
Com o boto direito do mouse, clique na forma Pintar 1 e depois em Atribuir Macro. Agora escolha
PintarColorIndex. Repita o mesmo procedimento no outro boto agora escolhendo a macro PintarRGB. Pronto!
Para testar os botes, selecione uma clula qualquer e clique num dos botes. A clula pintada.