Operaciones con matrices
VBA tiene variables y tipos de datos, y uno de los tipos de datos más versátiles es el tipo Variant.
El tipo Variant puede almacenar varios tipos de datos, como cadenas, números, fechas y valores booleanos. Además, el tipo Variant también puede almacenar múltiples datos en una sola variable como una matriz.
En esta página, explicaremos cómo definir y manipular matrices en VBA.
Definición de matrices
Para definir una matriz, como se mencionó anteriormente, declare una variable de tipo Variant y asigne una matriz a esa variable.
Dim fruits As Variant
fruits = Array("apple", "banana", "orange")
En el ejemplo anterior, se asigna una matriz con tres elementos "apple"
, "banana"
, "orange"
a la variable fruits
utilizando la función Array
.
Para obtener un elemento en una posición específica de los datos anteriores, se debe especificar el índice de la matriz. Los índices comienzan desde 0.
fruits(0) ' => "apple"
Los arreglos pueden contener no solo cadenas, sino también números y valores booleanos.
Dim numbers As Variant
numbers = Array(1, 2, 3)
numbers(1) ' => 2
Matriz bidimensional
Puede definir una matriz bidimensional almacenando otra matriz como un elemento de la matriz.
Dim matrix As Variant
matrix = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9))
En el ejemplo anterior, se asigna una matriz con tres elementos a la variable . Cada uno de estos elementos es una matriz con tres elementos.
matrix(0)(0) ' => 1
matrix(1)(1) ' => 5
Operaciones con matrices
Las matrices permiten agregar y eliminar elementos, pero requieren operaciones algo complejas.
Agregar elementos
Para agregar elementos a una matriz, use la declaración para cambiar el tamaño de la matriz y agregar nuevos elementos.
ReDim Preserve fruits(3)
fruits(3) = "grape"
ReDim
sin usar no se puede agregar elementos. Además, cuando se usa ReDim
para cambiar el tamaño de la matriz, los datos de la matriz original se pierden, por lo que use la palabra clave Preserve
para mantener los datos originales.
Eliminación de elementos
Para eliminar un elemento de una matriz, use la declaración ReDim
para cambiar el tamaño de la matriz y elimine el elemento que desea eliminar.
ReDim Preserve fruits(2)
Si necesita eliminar un elemento en una posición específica, debe redefinir la matriz sin ese elemento.
Operaciones con matrices usando la declaración
Si desea realizar operaciones en cada elemento de una matriz, la declaración es útil.
Dim fruit As Variant
For Each fruit In fruits
Debug.Print fruit
Next fruit
En el ejemplo anterior, cada elemento de la matriz fruits
se asigna a una variable llamada fruit
y se imprime con la instrucción Debug.Print
.
Al ejecutarlo, se muestra la siguiente salida.
apple
banana
orange