For Each...Next
Instrução
empregada para repetir um grupo de instruções para cada elemento de uma coleção
ou matriz, utilizando a seguinte sintaxe:
For Each
Elemento In Coleção
[Instruções]
[Exit For]
[Instruções]
Next [Element]
Onde,
- Elemento: argumento obrigatório, é uma variável empregada para interagir com cada elemento da coleção ou matriz;
- Coleção: argumento obrigatório, indicando o nome da coleção ou matriz a ser percorrida pelo laço For Each...Next;
- Instruções: argumento opcional, indicando as instruções a serem executadas no interior do laço For..Each...Next;
- Next: indica o término das instruções a serem executadas no interior do laço For...Each.
São válidas as seguintes considerações para a instrução For
Each...Next:
- Quando a coleção se referenciar a uma matriz, Elemento deverá obrigatoriamente ser uma variável declarada As Variant;
- Quando Coleção se referenciar a uma coleção de dados fornecida por um objeto, Elemento poderá ser dclarada como As Variant, As Object ou As <TipoDeObjeto>, onde <TipoDeObjeto> é um objeto do mesmo tipo existente em Coleção;
- As instruções interiores ao laço For Each serão executadas se houver pelo menos um elemento na Coleção referenciada. Se houverem n-elementos na coleção, o grupo de instruções será executado uma vez para cada elemento, até a ocorrência do último elemento;
- For Each...Next é útil para se percorrer todos os elementos de coleções que possuem um número indeterminado de elementos, sem que o programador tenha de se preocupar em definir quantos elementos existem na coleção;
- Para terminar abruptamente um laço For Each...Next, empregue uma ou mais instruções Exit For no interior do laço;
- Você pode aninhar instruções For Each.Next, desde que o Elemento empregado em cada laço seja unicamente identificável dentro do laço;
- .Não é possível empregar a instrução For Each...Next em uma matriz de tipos de dados definidos pelo usuário, porque uma variável declarada As Variant não pode conter este tipo de dados.
Exemplo: O exemplo que se segue emprega um laço For
Each...Next para percorrer todos os controles de um formulário e tornar
visível/Invisível, aqueles cuja propriedade Tag tenha sido definida para “-1”
no modo Estrutura do formulário.
Public Sub
ExibeCtls(fExibe as boolean)
Dim ctl as Control
For Each ctl in Me.Controls
If ctl.Tag = “-1” Then
Ctl.Visible = fExibe
End If
Next
End Sub
Até a Próxima!!
Nenhum comentário:
Postar um comentário