Excel VBA – If … Then … Else
Postado em 18/09/2009 23:09:41 por Tomás VásquezO que é?
No VBA, a estrutura If … Then … Else permite que determinadas instruções sejam executadas apenas caso uma condição definida pelo programador seja satisfeita. O bloco If deve ser encerrado com uma instrução End If.
Esta estrutura de controle de fluxo tem a seguinte sintaxe:
1 2 3 4 5 | If [condição] Then [código executado caso a condição seja verdadeira] Else [código executado caso a condição seja falsa] End If |
A palavra-chave Else é opcional e permite que um conjunto alternativo de instruções seja executado caso a condição testada não seja satisfeita. End If encerra o bloco de código.
Note que é possível inserir qualquer número desejado de instruções dentro desta estrutura. As instruções executadas caso a condição seja verdadeira são todas aquelas que estiverem antes do Else (ou do End If, caso o Else seja suprimido). Analogamente, se uma instrução Else for fornecida, todo o código entre ela e o End If será executado.
Exemplo
Neste exemplo, faremos uma implementação da função módulo. Ela deve receber como parâmetro um número 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 função, usaremos a estrutura If … Then. Observe o código:
1 2 3 4 5 6 7 | Function Modulo(x as Long) as Long If x > 0 Then Modulo = x Else Modulo = -x End If End Function |
No código acima, a condição testada pelo If é se o valor de x é positivo (x > 0). Caso esta expressão seja verdadeira, o primeiro bloco de código (Modulo = x) será executado, e o segundo, ignorado; caso contrário, apenas o segundo bloco (Modulo = -x) será executado.
Observe a aplicação da função Modulo:
A função se comporta exatamente como a função ABS do Excel.

![ifel_c53[1] ifel_c53[1]](http://www.tomasvasquez.com.br/blog/wp-content/uploads/2009/09/ifel_c531.gif)
![ifel_19c[1] ifel_19c[1]](http://www.tomasvasquez.com.br/blog/wp-content/uploads/2009/09/ifel_19c1.gif)
Você precisa ser um usuário registrado para inserir um comentário. Faça seu login clicando aqui