Un arreglo es un conjunto de elementos indexados secuencialmente, estos elementos son variables del mismo tipo de dato, cada uno de los elementos es independiente (su modificación no altera al resto).
Un arreglo puede tener una o varias dimensiones. Cuando tiene una dimensión puede contener una lista de datos, por ejemplo, la lista de valores del tipo de cambio del dólar para cada día de la última semana.
Cuando tiene dos o más dimensiones puede contener, en el caso de un arreglo de dos dimensiones, los datos de una tabla o matriz, por ejemplo, los tipos de cambio del dólar y el euro en la última semana.
Fecha | Dólar | Euro |
13/02/2019 | 2.57 | 3.46 |
14/02/2019 | 2.57 | 3.43 |
15/02/2019 | 2.57 | 3.43 |
16/02/2019 | 2.57 | 3.43 |
17/02/2019 | 2.56 | 3.43 |
18/02/2019 | 2.57 | 3.44 |
19/02/2019 | 2.58 | 3.47 |
En esta ocasión se abordarán los arreglos multidimensionales. Utilizando el caso de los tipos de cambio se puede declarar un arreglo de dos dimensiones mediante el siguiente código:
Dim arr(2,7)
El primer número indica cuantos elementos habrá en la primera dimensión, el segundo número indica la cantidad de elementos de la segunda dimensión. En este caso tenemos un arreglo de 2 x 7 elementos. Una dimensión sería la moneda y la otra los tipos de cambio en cada día de la semana. Estas dimensiones serían las filas y las columnas de la matriz.
Nótese que no se ha especificado el tipo de dato de los elementos del arreglo, si se omite este será variant. Ahora, si se desea especificar el tipo de datos, por ejemplo, que el arreglo contenga números decimales (single) para los valores del tipo de cambio, se declara así:
Dim arr(2,7) As Single
A continuación se muestra el código para llenar el arreglo, es decir, para asignar los valores a cada uno de los elementos de la matriz:
arr(1,1) = 2.57
arr(1,2) = 2.57
arr(1,3) = 2.57
arr(1,4) = 2.57
arr(1,5) = 2.56
arr(1,6) = 2.57
arr(1,7) = 2.58
arr(2,1) = 3.46
arr(2,2) = 3.43
arr(2,3) = 3.43
arr(2,4) = 3.43
arr(2,5) = 3.43
arr(2,6) = 3.44
arr(2,7) = 3.47
También es posible insertar los datos del arreglo en una hoja de Excel, como muestra el siguiente código:
Dim Contador As Integer
Range("A1").Value = "Dólar"
Range("B1").Value = "Euro"
For Contador = 1 To 7
Range("A" & (Contador + 1)).Value = arr(1, Contador)
Range("B" & (Contador + 1)).Value = arr(2, Contador)
Next
Se ha utilizado una estructura For para recorrer secuencialmente los elementos de la matriz y conforme se va recorriendo se insertan los valores en las celdas que son especificadas en función del contador.
Cabe resaltar que en la primera línea (antes de la cabecera de la macro) se debe insertar la línea Option Base 1 si se desea que la indexación de los elementos comience en uno y no en cero (valor predeterminado para Visual Basic y otros lenguajes de programación). Si comenzara en cero se tendría un elemento más en cada dimensión (3x8 en el caso presentado de los tipos de cambio). Se adjunta el código de la macro del ejemplo presentado.
Arreglos Multidimensionales en VBA
Kenjiro Tataje