VBA – Matriz de Objetos

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on diciembre 9, 2022

Este tutorial mostrará cómo crear y utilizar Array de Objetos en VBA.

En VBA, los Arrays son variables que almacenan múltiples valores. Puedes almacenar Objetos VBA en arrays de la misma manera que almacenarías cualquier otro dato.

Declarando el Array de Objetos

En este ejemplo, declararemos un array de hojas de trabajo VBA:

Dim arWks(3) As Worksheet

Rellenar un Array Estático de Objetos

Declare que el Array de Objetos es Estático, y luego puede llenar dicho Array con las hojas que seleccione de su libro de trabajo.

Sub TestObjArray()
    'definir el array como array de hoja de cálculo
    Dim arWks(1 To 3) As Worksheet
    'añade 3 hojas al array
    Set arWks(1) = Sheets(1)
    Set arWks(2) = Sheets(2)
    Set arWks(3) = Sheets(3)
End Sub

Rellenar una Array de Objetos Dinámica

Puede declarar el Array de Objetos como Dinámico, y luego contar las hojas en el libro de trabajo antes de asignar el tamaño del Array a la Array de Objetos.

Sub TestObjArray()
'definir el array como un array de hoja de trabajo
   Dim arWks() As Worksheet
'cuenta cuántas hojas de cálculo hay en el archivo y redimensiona el array
   Dim n As Integer
   Dim i As Integer
'cuente las hojas y reste una para establecer los límites del array
   n = Application.Sheets.Count - 1
   ReDim arWks(n)
'llene el array de hojas de trabajo con todas las hojas del libro de trabajo
   For i = LBound(arWks) to UBound(arWks)
     Set arWks(i) = ActiveWorkbook.Sheets(i + 1)
   Next i
End Sub

En el ejemplo anterior, primero declaramos la Matriz de Hojas de Trabajo. Luego contamos el número de hojas en el libro de trabajo, y asignamos ese valor menos uno al UBound del Array. Esto es debido al hecho de que el LBound de la matriz comienza como 0. Por último, hacemos un bucle a través de las hojas y añadimos cada hoja a la matriz.

Utilizando el Array de Objetos en Código VBA

Una vez que hemos poblado el arreglo de hojas de trabajo, podemos utilizar VBA para recorrer el arreglo.

Sub TestObjArray() 
'definir el array como un array de hoja de trabajo  
   Dim arWks() As Worksheet 
'cuenta cuántas hojas de cálculo hay en el archivo y redimensiona el array 
   Dim n As Integer 
   Dim i As Integer 
'cuente las hojas y reste una para establecer los límites del array 
   n = Application.Sheets.Count - 1 
   ReDim arWks(n) 
'llene el array de hojas de trabajo con todas las hojas del libro de trabajo
   For i = LBound(arWks) to UBound(arWks) 
      Set arWks(i) = ActiveWorkbook.Sheets(i + 1) 
   Next i
'hacer algo con cada hoja de la matriz 
   For i = LBound(arWks) to UBound(arWks) 
      arWks(i).Range("A1:H1").Font.Bold = True 
   Next i
End Sub

En el ejemplo anterior, hacemos un bucle a través del Array y Doblamos la primera fila de cada hoja en la matriz.

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples