Instrução For Each...Next

Repete um grupo de instruções para cada elemento em uma matriz ou conjunto.

Sintaxe

For Each elemento In grupo
[ instruções ]
[ Exit For ]
[ instruções ]
Next [ elemento ]

A sintaxe da instrução For...Each...Next tem as seguintes partes:

Parte Descrição
elemento Obrigatório. Variável usada para realizar a iteração pelos elementos do conjunto ou matriz. Para conjuntos, elemento só pode ser uma variável Variant, uma variável de objeto genérico ou qualquer variável de objeto específico. Para matrizes, elemento só pode ser uma variável Variant.
grupo Obrigatório. Nome de um conjunto de objetos ou uma matriz (exceto uma matriz de tipos definidos pelo usuário).
instruções Opcional. Uma ou mais instruções que são executadas em cada item em grupo.

Comentários

O bloco For…Each será inserido se houver pelo menos um elemento em grupo. Após entrar no loop, todas as instruções nele são executadas para o primeiro elemento em grupo. Se houver mais elementos no grupo, as instruções no loop continuarão a ser executadas para cada elemento. Quando não houver mais elementos em grupo, o loop será encerrado e a execução continuará com a instrução após a instrução Next.

É possível inserir quantas instruções Exit For você quiser, em qualquer lugar do loop, como uma alternativa para sair. Normalmente, Exit For é usada após a avaliação de alguma condição, por exemplo If...Then, e transfere o controle para a instrução imediatamente após Next.

Você pode aninhar loops For...Each...Next colocando um loop For…Each…Next dentro de outro. No entanto, cada elemento do loop deve ser exclusivo.

Observação

Se você omitir elemento em uma instrução Next, a execução continuará como se elemento estivesse incluída. Se uma instrução Next for encontrada antes de sua instrução For correspondente, ocorrerá um erro.

Não é possível usar a instrução For...Each...Next com uma matriz de tipos definidos pelo usuário porque uma Variant não pode conter um tipo definido pelo usuário.

Exemplo

Este exemplo usa a instrução For Each...Next para pesquisar a propriedade Text de todos os elementos em um conjunto e verificar se existe a cadeia de caracteres "Hello". No exemplo, MyObject é um objeto relacionado a texto e é um elemento do conjunto MyCollection. Ambos são nomes genéricos usados apenas para fins ilustrativos.

Dim Found, MyObject, MyCollection 
Found = False    ' Initialize variable. 
For Each MyObject In MyCollection    ' Iterate through each element.  
    If MyObject.Text = "Hello" Then    ' If Text equals "Hello". 
        Found = True    ' Set Found to True. 
        Exit For    ' Exit loop. 
    End If 
Next

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.