OS MELHORES VÍDEOS

 

Pesquisar

sábado, 18 de janeiro de 2014

While ... Wend

O que é?

Em VBA, a estrutura While ... Wend permite que determinadas instruções sejam executadas enquanto uma condição especificada for verdadeira.



Observe a sintaxe desta estrutura:
While [condição]
    [instruções]
Wend
Na estrutura acima, [condição] é uma expressão avaliada antes de cada iteração. Se esta condição é verdadeira, então as instruções [instruções] dentro do constructo são executadas. Ao final do bloco (Wend), [condição] é avaliada novamente, e se for falsa, o laço termina.

Exemplo

No exemplo a seguir, usaremos o constructo While ... Wend para implementar uma versão da função POTÊNCIA do Excel. Nossa função, mPotencia, calculará apenas potências de números naturais a expoentes naturais.
Observe o código desta função:
' A função mPotencia é uma implementação
' da função POTÊNCIA do Excel. Ela utiliza
' a estrutura While ... Wend para realizar
' o número correto de passos necessários
' para o cálculo de uma potência de um
' número natural qualquer.

Function mPotencia(base As Integer, exp As Integer) As Long
    Dim valor As Long
    valor = base
    If exp < 1 Or base < 0 Then
        mFatorial = CVErr(xlErrNum)
    Else
        While exp <> 1
            valor = valor * base
            exp = exp - 1
        Wend
        mPotencia = valor
    End If
End Function
A função acima verifica se os argumentos são números inteiros, forçando o tipo de dados Integer na declaração da função. Adicionalmente, se a base for negativa ou o expoente menor que 1, a função devolverá um valor de erro.
A parte principal da função é a seguinte:
While exp <> 1
    valor = valor * base
    exp = exp - 1
Wend
A condição verificada é a seguinte: O valor do expoente é diferente de um? Enquanto a resposta é afirmativa, as instruções valor = valor * base e exp = exp - 1 serão realizadas.
Note que o expoente é necessariamente maior ou igual a 1 no início do While, e esse valor diminui a cada iteração.
Veja a aplicação desta função em uma planilha:
Note que esta função só trabalha com números naturais, de forma que é boa idéia utilizar a função padrão do Excel para cálculo de potências, POTÊNCIA.

Nenhum comentário:

Postar um comentário