VBA Loop Através de uma Matriz / Percorrer Itens de uma Matriz

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on July 6, 2023

Este tutorial ensinará a você como fazer loop em matrizes no VBA.

Há duas maneiras principais de fazer loop em matrizes usando o VBA:

  • For Each Loop – O For Each Loop percorrerá cada item da matriz.
  • For Next Loop – O For Next Loop percorrerá através das posições iniciais e finais especificadas da matriz (podemos usar as funções UBound e LBound para percorrer toda a matriz).

Para cada item na matriz (For Each Loop)

O Loop For Each permite que você faça um loop em cada elemento da matriz.

Sub LoopPelaMatrizEstatica() 
   'declarar a matriz 
   Dim strNomes(1 To 4) As String 

   'preencher a matriz 
   strNomes(1) = "Bob"
   strNomes(2) = "Peter" 
   strNomes(3) = "Keith" 
   strNomes(4) = "Sam" 

   'declarar uma variável variante para guardar o elemento da matriz
   Dim item as variant

   'percorrer toda a matriz
   For Each item in strNomes 
      'mostra o elemento na janela de depuração.
      Debug.Print item
   Next item
End Sub

O procedimento acima percorrerá todos os nomes da matriz.

nomes janela imediata

Loop For Next

O Loop For Next percorrerá cada item entre uma posição inicial e final especificada da matriz.

Loop em Parte da Matriz

Você pode especificar manualmente as posições inicial e final do loop. Isso pode ser apropriado se você souber o tamanho da matriz e/ou quiser percorrer apenas parte de uma matriz.

Sub LoopForNextEstatico()
'declarar a matriz
   Dim strNomes(1 To 4) As String
'preencher a matriz
   strNomes(1) = "Bob"
   strNomes(2) = "Peter"
   strNomes(3) = "Keith"
   strNomes(4) = "Sam"
'declarar uma integer
   Dim i As Integer
'loop da posição 2 para a posição 3 da matriz
   For i = 2 To 3
'mostra o elemento na janela de depuração.
      Debug.Print strNomes(i)
   Next i
End Sub

No exemplo acima, fizemos um loop pelas posições 2 e 3 da matriz. A janela imediata retornaria os nomes da seguinte forma.

mostrando dois elementos

Loop em Toda a Matriz

Em seguida, usaremos as funções UBound e LBound para percorrer uma matriz inteira. Isso é extremamente útil se as posições inicial e final da matriz puderem mudar (por exemplo, uma matriz dinâmica):

Sub LoopForNextDinamico()
'declarar a matriz
   Dim strNomes() As String
'inicializar a matriz
   ReDim strNomes(1 to 4)
'preencher a matriz
   strNomes(1) = "Bob"
   strNomes(2) = "Peter"
   strNomes(3) = "Keith"
   strNomes(4) = "Sam"
'declarar uma integer
   Dim i As Integer
'loop do limite inferior da matriz até o limite superior da matriz - a matriz inteira
   For i = LBound(strNomes) To UBound(strNomes)
'mostrar o nome na janela de verificação imediata
      Debug.Print strNomes(i)
   Next i
End Sub
vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA