VBA – Array de Variantes
In this Article
Este tutorial mostrará cómo crear y trabajar con Matrices de Variantes.
Array Tipo Variant
Un array es un tipo de variable. Como con otras variables, los arrays se declaran utilizando la sentencia Dim para un array a nivel de módulo o procedimiento, o la sentencia Public para un array a nivel global.
Una matriz variante es una matriz que se declara con un tipo de datos variant. Los tipos de datos variant pueden almacenar cualquier tipo de valores: texto, números, fechas, hora u objetos.
Ventajas de los Arrays de Variantes
Los Arrays de variantes son especiales porque son más fáciles de trabajar que las matrices típicas.
- Son más fáciles de declarar.
- No tienes que preocuparte del tipo de datos que se introducen en la matriz (por ejemplo, si una celda contiene texto o números).
- Puedes rellenar el array con la función Array (si el tamaño del array no está definido cuando se declara).
- No es necesario utilizar la sentencia REDIM para redimensionar / repoblar la matriz (si el tamaño de la matriz no se define cuando se declara).
Declaración de un Array Variant
Para declarar un array variante, puede escribir esta sencilla sentencia
Dim varNombres()
Esto se considera un Array variante dinámico.
Observa que no necesitas especificar el tipo de datos (se asume que es variante) o el tamaño del array.
Asignar Valores a un Array de Variantes
Los Arrays de variantes pueden contener cualquier tipo de valores: texto, números, fechas, hora u objetos.
Para asignar valores a una matriz de variantes, puede utilizar la función Matriz:
'rellenar el array
varNombres() = Array("Fred", "Wilma", "Barney", "Betty")
Este método puede resultarle más fácil que utilizar el método estándar:
'rellenar cada elemento
varNombres(0) = "Fred"
varNombres(1) = "Wilma"
varNombres(2) = "Barney"
varNombres(3) = "Betty"
Redimensionar Array de Variantes
Los Arrays de variantes dinámicas pueden cambiar de tamaño en tiempo de ejecución. No es necesario utilizar las típicas sentencias Redim o Redim Preserve necesarias para redimensionar matrices estándar.
Ejemplo de Array Variante
Poniendo todo esto junto, este procedimiento poblará, y repoblará un array de variantes:
Sub Prueba_Array()
'declarar la variable
Dim varNombres() As Variant
'rellenar el array
varNombres() = Array("Fred", "Wilma", "Barney", "Betty")
'Devolver valores
MsgBox Join(varNombres, ",")
'Rellenar nuevamente el array
varNombres() = Array(400, 500)
'Devolver los nuevos valores
MsgBox Join(varNombres, ",")
End Sub
Hemos rellenado la matriz varNombres con 4 nombres, y luego con 2 números. Los cuadros de mensaje aparecerán de la siguiente manera.