Tag Archives: Condicional

Excel VBA – If … Then … Else

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:

Screenshot 2016-01-24 17.30.49

Screenshot 2016-01-24 17.31.11

A função se comporta exatamente como a função ABS do Excel.