O 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:
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:
Function Absoluto(x As Long) As Long If x >= 0 Then Absoluto = x Else Absoluto = -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 (Absoluto = x) será executado, e o segundo, ignorado; caso contrário, apenas o segundo bloco (Absoluto = -x) será executado.
Observe a aplicação da função Absoluto:
A função se comporta exatamente como a função ABS do Excel.