Macros en Excel – Parte 3
Por: María Camila Hernández
¿Qué es un array en VBA?
Un array se define como una ubicación de memoria capaz de almacenar más de un valor.
Todos los valores deben ser del mismo tipo de datos. Digamos que desea almacenar una
lista de sus bebidas favoritas en una sola variable, puede usar un array o una matriz VBA
para hacerlo.
Al utilizar una matriz, puede hacer referencia a los valores relacionados con el mismo
nombre. Puede utilizar un índice o subíndice para diferenciarlos. Los valores individuales
se denominan elementos de la matriz VBA de Excel. Son contiguos desde el índice 0 hasta
el valor de índice más alto.
¿Cuáles son las ventajas de las matrices?
Los siguientes son algunos de los beneficios que ofrece la función de matriz VBA:
- Agrupe datos relacionados lógicamente; digamos que desea almacenar una lista de
estudiantes. Puede utilizar una única variable de matriz que tenga ubicaciones
separadas para las categorías de estudiantes, es decir, jardín de infantes, primaria,
secundaria, preparatoria, etc.
- Las matrices facilitan la escritura de código mantenible. Para los mismos datos
relacionados lógicamente, le permite definir una única variable, en lugar de definir
más de una variable.
- Mejor rendimiento: una vez que se ha definido una matriz, es más rápido recuperar,
ordenar y modificar datos.
Tipos de matrices en VBA
- VBA admite dos tipos de matrices, a saber;
- Estático: estos tipos de matrices tienen una cantidad fija predeterminada de
elementos que se pueden almacenar. No se puede cambiar el tamaño del tipo
de datos de una matriz estática. Son útiles cuando se desea trabajar con
entidades conocidas, como el número de días de una semana, el género, etc.
Por ejemplo:
Dim ArrayMonth(12) As String
- Dinámico: estos tipos de matrices no tienen un número fijo predeterminado
de elementos que se puedan almacenar. Son útiles cuando se trabaja con
entidades cuyo número no se puede predeterminar. Por ejemplo:
Dim ArrayMonth() As Variant
Sintaxis para declarar matrices
Matrices estáticas
La sintaxis para declarar matrices ESTÁTICAS es la siguiente:
Dim arrayName (n) as datatype
Acción del código
- Tipo de datos Dim arrayName (n)
- Declara una variable de matriz llamada arrayName con un tamaño de n y
tipo de datos. El tamaño se refiere a la cantidad de elementos que la matriz
puede almacenar.
Matrículas dinámicas
La sintaxis para declarar matrices DINÁMICAS es la siguiente:
Dim arrayName() as datatype
ReDim arrayName(4)
Acción del código
- Tipo de datos Dim arrayName ()
- Declara una variable de matriz llamada nombreArray sin especificar el
número de elementos.
- ReDim nombre de matriz (4)
- Especifica el tamaño de la matriz una vez definida la matriz.
Dimensiones de la matriz
Una matriz puede ser unidimensional, bidimensional o multidimensional.
- Una dimensión: en esta dimensión, la matriz usa solo un índice. Por ejemplo, un
número de personas de cada edad.
- Dos dimensiones: en esta dimensión, la matriz utiliza dos índices. Por ejemplo, un
número de estudiantes en cada clase. Requiere número de clases y número de
estudiantes en cada clase.
- Multidimensión: en esta dimensión, la matriz utiliza más de dos índices. Por
ejemplo, las temperaturas durante el día. (30, 40, 20).
Pasos a realizar:
1. Abra Excel
2. Revise que la opción de “desarrollador”
3. Guarde el Excel con el tipo “Habilitado para macros”
4. Crear un botón desde la opción del “ActiveX”
5. Ingresar a la opción de “ver código” del botón. Allí debe crear un array con sus
bebidas favoritas. Por ejemplo:
Private Sub cmdLoadBeverages_Click()
Dim Drinks(1 To 4) As String
Drinks(1) = "Pepsi"
Drinks(2) = "Coke"
Drinks(3) = "Fanta"
Drinks(4) = "Juice"
Sheet1.Cells(1, 1).Value = "My Favorite Beverages"
Sheet1.Cells(2, 1).Value = Drinks(1)
Sheet1.Cells(3, 1).Value = Drinks(2)
Sheet1.Cells(4, 1).Value = Drinks(3)
Sheet1.Cells(5, 1).Value = Drinks(4)
End Sub
6. Cree otro botón y adjunte el código para que al dar click, pueda ver una lista con sus
tres materias favoritas
7. Empiece a crear la estructura de una calculadora con las operaciones básicas en
Excel (Nota: puede usar los ejercicios realizados en las clases anteriores, la parte 1 y
parte 2)