Cavalcante Consultores – treinamento e consultoria em finanças e Excel

For ... Next

Cavalcante Consultores > Biblioteca de Excel > For ... Next

O que é?

Em VBA, a instrução For ... Next repete uma mesma ação por um número de vezes definido pelo usuário.

Observe sua estrutura:

For [variável] = [valor inicial] To [valor final]
    [código]
Next

[variável] é uma variável numérica qualquer, previamente declarada ou não. No início da execução desta instrução, ela assume o valor dado por [valor inicial]. A cada iteração, as seguintes ações ocorrem:

Exemplo

Neste exemplo, usaremos a estrutura For ... Next para realizar uma implementação da função FATORIAL. A definição desta função é a seguinte:

Note que a definição acima é recursiva, de forma que podemos reescrevê-la como FATORIAL(x) = x · (x - 1) · (x - 2) · (...) · 2 · 1, para um x natural qualquer.

Para implementar esta função, podemos utilizar a estrutura For ... Next. Observe o código:

' A função mFatorial é uma implementação
' da função FATORIAL do Excel. Ela utiliza
' a estrutura For ... Next para controlar
' o número de passos necessários para
' calcular o fatorial.

Function mFatorial(x As Integer) As Long
    Dim contador As Integer
    Dim total As Long
    total = 1
    If x < 0 Then
        mFatorial = CVErr(xlErrNum)
    Else
        For contador = 1 To x
            total = total * contador
        Next
        mFatorial = total
    End If
End Function

A variável contador vai abrigar o contador que percorre os números entre 1 e o valor de entrada, x. Já a variável total mantém o subtotal calculado em cada passo da função.

Esta função devolve um valor de erro caso seu valor de entrada seja um inteiro negativo, uma vez que a função só está definida para números naturais. Isto é feito na instrução mFatorial = CVErr(xlErrNum).

A parte importante deste programa é o laço de repetição (também chamado loop). Ele será executado exatamente x vezes. Observe:

For contador = 1 To x
    total = total * contador
Next

O valor de contador começa em 1 e percorre todos os naturais até x A cada passo, o total (que começa em 1) é multiplicado pelo valor do contador. Por exemplo, se o valor de entrada fosse x = 4, teríamos a seguinte seqüência:

Em seguida, a função mFatorial encerra sua execução e devolve o valor obtido, 24.

Veja a aplicação da função mFatorial em uma planilha:

Pratique!