VBA For...Next


A instrução do VBA For terminado em Next é utilizada para repetir um código entre estes dois comandos por um número determinado de vezes.

Instruções de repetição de códigos também são chamados de loop ou laço.

Ao invés de escrevermos assim:

Sub ForNext1()
    i = 1
    MsgBox "Repetição desse Msgbox de N. " & i
    i = i + 1
    MsgBox "Repetição desse Msgbox de N. " & i
    i = i + 1
    MsgBox "Repetição desse Msgbox de N. " & i
    'O Msgbox será disparado 3 vezes
End Sub

Podemos escrever assim:

Sub ForNext1()
    For i = 1 To 3 'i começa em 1 e irá até 3
        Msgbox "Repetição desse Msgbox de N. " & i
    Next i
    'O Msgbox será disparado 3 vezes
End Sub

A instrução For Next precisa de um contador. No caso utilizamos i, que inicia em 1, e a cada comando Next i o valor de i é agregado em uma unidade. A última repetição For do código será quando i for igual a 3.

A variável utilizada como contador é escolhida pelo usuário e preferivelmente foi declarada previamente.

Experimente executar o código acima no VBE pressionando sucessivamente F8. Passe o mouse em cima do i a cada momento da execução para ver o valor instantâneo da variável.

Acessando o VBE

Step For Next VBA

Por padrão ao se atingir a instrução Next i dos exemplos é adicionado o valor de +1 ao i, como i=i+1.

Podemos customizar esse incremento com a instrução Step. (em português equivalente a passo).

Sub ForNext1()
    For rep = 10 To 14 Step 2
        Msgbox "Olá mundo VBA!"
        Msgbox " Repetição " & rep & "."
    Next rep
End Sub

Neste exemplo, "Olá mundo VBA!" foi repetido 3 vezes, iniciando rep em 10 e somando a cada iteração mais 2 ao rep até chegar em 14, sendo essa a última iteração. 10, 12 e 14.

A quantidade de interações pode ser calculada através do conta $({14-10 \over 2}+1)=3$.

Iteração é o nome dado a uma das muitas execuções que um loop pode ter.

É possível atribuir um valor negativo ao Step.



SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.

Excel ® é uma marca registrada da Microsoft Corporation.

© 2024 SuperExcelVBA | SOBRE

Protected by Copyscape