Contenido
`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:
Dim miArray() As Integer
ReDim miArray(5)
- Declarar el Array Dinámico: Primero, debes declarar el array sin especificar las dimensiones.
- Dimensionar el Array con ReDim: Luego puedes usar `ReDim` para establecer las dimensiones del array.
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`).
ReDim miArray(10)
- Cambiar el tamaño del Array: Si necesitas cambiar el tamaño del array más tarde, puedes usar `ReDim` de nuevo.
Ten en cuenta que al utilizar `ReDim` se perderán los datos que estaban almacenados en el array.
ReDim Preserve miArray(15)
- Preservar datos con Preserve: Si no quieres perder los datos al redimensionar el array, debes utilizar la palabra clave `Preserve`.
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:
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.