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.

Definición_de_matrices
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.

Obtener_un_elemento_de_la_matriz
fruits(0) ' => "apple"

Los arreglos pueden contener no solo cadenas, sino también números y valores booleanos.

Definición_de_arreglo_(números)
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.

Definición_de_matriz_(matriz_bidimensional)
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.

Obtener_elementos_de_una_matriz_bidimensional
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.

Agregar_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.

Eliminación_de_elementos
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.

Operaciones_con_matrices_usando_la_declaración_For_Each
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
#VBA