Vous êtes sur la page 1sur 7

EXCEL VBA ELSE IF

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:

MAIOR , se x maior que y;

MENOR se x e menor que y;

IGUAIS se x e y forem iguais;


Para implementar esta funo, usaremos a estrutura If Then em conjunto com a
estrutura Else If Then. Observe o cdigo:
Function Compara(x As Long, y As Long) As String
'varivel para armazenar o resultado
Dim resultado As String
If x > y Then
resultado = "MAIOR"
ElseIf x < y Then
resultado = "MENOR"
ElseIf x = y Then
resultado = "IGUAIS"
End If
'retorna o resultado da funo
Compara = resultado
End Function

Para facilitar o entendimento, tome o valor de x como sendo a referncia para o


funcionamento da funo. O primeiro teste feito no cdigo para analisar se maior do

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:

EXCEL VBA IF THEN ELSE


18 18UTC SETEMBRO 18UTC 2009 TOMS VSQUEZ DEIXE UM COMENTRIO

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

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.
Note que possvel inserir qualquer nmero desejado de instrues dentro desta
estrutura. As instrues executadas caso a condio seja verdadeira so todas aquelas
que estiverem antes do Else (ou do End If, caso o Else seja suprimido). Analogamente,
se uma instruo Else for fornecida, todo o cdigo entre ela e o End If ser executado.

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).

Para implementar esta funo, usaremos a estrutura If Then. Observe o cdigo:


Function Absoluto(x As Long) As Long
If x >= 0 Then
Absoluto = x

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:

A funo se comporta exatamente como a funo ABS do Excel.

Cdigo de cores no VBA


por Fabio Vianna | maio 15, 2009 | Dicas de Excel |
No Excel, h duas propriedades referentes as cores que so Color e ColorIndex.
A propriedade Color utiliza as cores no formato RGB (Red, Green, Blue).
A propriedade ColorIndex utiliza as 56 cores pr-definidas do VBA. Veja a tabela abaixo:

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.

Vous aimerez peut-être aussi