¿Cómo usar la instrucción ReDim en VBA?

ReDim es una instrucción en VBA (Visual Basic for Applications) que se utiliza para redimensionar arrays dinámicos. Al utilizar ReDim, puedes cambiar el tamaño de un array que ya ha sido previamente declarado, permitiéndote aumentar o disminuir el número de elementos que el array puede contener. Es importante destacar que ReDim solo puede ser usado con arrays que fueron declarados como dinámicos, es decir, sin especificar el número de elementos en su declaración inicial.

Aquí tienes cómo usar ReDim en un script de VBA:

Declarar el Array Dinámico

Primero, debes declarar el array sin especificar las dimensiones.

VBA

   Dim miArray() As Integer
   

Dimensionar el Array con ReDim

Luego puedes usar ReDim para establecer las dimensiones del array.

VBA

   ReDim miArray(5)
   

Esto redimensionará miArray para que pueda contener 6 elementos (los índices en VBA empiezan en 0 por defecto a menos que se especifique Option Base 1).

Cambiar el tamaño del Array

Si necesitas cambiar el tamaño del array más tarde, puedes usar ReDim de nuevo.

VBA

   ReDim miArray(10)
   

Ten en cuenta que al utilizar ReDim se perderán los datos que estaban almacenados en el array.

Preservar datos con Preserve

Si no quieres perder los datos al redimensionar el array, debes utilizar la palabra clave Preserve.

VBA

   ReDim Preserve miArray(15)
   

Esto conservará los datos en el array, pero solo permitirá aumentar el tamaño del último índice del array. No puedes usar Preserve para cambiar la dimensión inferior (el primer índice) si el array es multidimensional.

Aquí tienes un ejemplo completo que incluye la declaración e inicialización del array, seguido por su redimensionamiento con conservación de los datos:

VBA

Sub EjemploReDim()
    ' Declarar el array dinámico
    Dim miArray() As Integer
    
    ' Dimensionar el array por primera vez
    ReDim miArray(5)
    
    ' Asignar valores al array
    Dim i As Integer
    For i = LBound(miArray) To UBound(miArray)
        miArray(i) = i + 1
    Next i
    
    ' Cambiar el tamaño del array y preservar contenido existente
    ReDim Preserve miArray(10)
    
    ' Imprimir los valores del array redimensionado
    For i = LBound(miArray) To UBound(miArray)
        Debug.Print miArray(i)
    Next i
    
End Sub

Este ejemplo inicializa un array con 6 elementos, les asigna valores, redimensiona el array a 11 elementos y luego imprime los valores del array redimensionado. Al utilizar Preserve, los valores originales se mantienen y los nuevos elementos del array se inicializan en cero (o en blanco, si es un array de cadenas de texto).

Recuerda que los arrays en VBA por defecto tienen base cero, a menos que hayas especificado Option Base 1 al inicio del módulo, en cuyo caso comenzarían con el índice 1.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario