Matrices de Excel VBA: qué es, cómo usar y tipos de matrices en VBA
¿Qué es la matriz VBA?
Una matriz 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 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.
Este tutorial asume que estás usando Microsoft Excel versión 2013. El conocimiento aún se aplica a otras versiones de Microsoft Sobresalir también.
¿Cuáles son las ventajas de las matrices?
Los siguientes son algunos de los beneficios que ofrece la función de matriz de 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 – Este tipo de matrices tienen un número fijo predeterminado 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 desea trabajar con entidades conocidas, como el número de días de una semana, el género, etc.Por ejemplo: Dim ArrayMonth(12) como cadena
- Dynamic – Este tipo de matrices no tienen un número fijo predeterminado de elementos que se pueden almacenar. Son útiles cuando se trabaja con entidades cuyo número no se puede predeterminar.Por ejemplo: Dim ArrayMonth() como variante
Sintaxis para declarar matrices
Matrices estáticas
La sintaxis para declarar STATIC matrices es la siguiente:
Dim arrayName (n) as datatype
AQUÍ,
Código | Acción |
---|---|
Tipo de datos Dim arrayName (n) |
|
Matrices dinámicas
La sintaxis para declarar DINÁMICA matrices es la siguiente:
Dim arrayName() as datatype ReDim arrayName(4)
AQUÍ,
Código | Acción |
---|---|
Tipo de datos Dim arrayName () |
|
ReDim nombre de matriz (4) |
|
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.
- Multidimensional: En esta dimensión, la matriz utiliza más de dos índices. Por ejemplo, las temperaturas durante el día. (30, 40, 20).
Cómo usar Array en Excel VBA
Crearemos una aplicación sencilla. Esta aplicación rellena una hoja de Excel con datos de una variable de matriz. En este ejemplo de matriz de VBA, haremos lo siguiente.
- Crear un nuevo Microsoft Libro de Excel y guárdelo como Libro de Excel habilitado para macros (*.xlsm)
- Agregar un botón de comando al libro de trabajo
- Establecer las propiedades de nombre y título del botón de comando
- Programando el VBA que llena la hoja de Excel
Hagamos este ejercicio paso a paso,
Paso 1: crear un nuevo libro de trabajo
- Abierto Microsoft Excel
- Guarde el nuevo libro como VBA Arrays.xlsm
Paso 2: agregue un botón de comando
Nota: Esta sección asume que está familiarizado con el proceso de creación de una interfaz en Excel. Si no estás familiarizado, lee el tutorial. Control de formularios VBA Excel y control ActiveX. Le mostrará cómo crear la interfaz.
- Agregar un botón de comando a la hoja
- Establezca la propiedad de nombre en cmdLoadBeverages
- Establezca la propiedad del título en Cargar bebidas
Su GUI ahora debería ser la siguiente
Paso 3: guarda el archivo
- Haga clic en el botón guardar como
- Elija el libro de trabajo habilitado para macros de Excel (*.xlsm) como se muestra en la imagen a continuación
Paso 4: escribe el código
Ahora escribiremos el código de nuestra aplicación.
- Haga clic derecho en el botón Cargar bebidas y seleccione ver código
- Agregue el siguiente código al evento de clic de cmdLoadBeverages
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
AQUÍ,
Código | Acción |
---|---|
Bebidas tenues (1 a 4) como cadena |
|
Bebidas(1) = “Pepsi” |
|
Sheet1.Cells(1, 1).Value = "Mis bebidas favoritas". |
|
Hoja1.Celdas(2, 1).Valor = Bebidas(1) |
|
Probar nuestra aplicación
Seleccione la pestaña de desarrollador y asegúrese de que el botón Modo de diseño esté "desactivado". El indicador es que tendrá un fondo blanco y no un fondo de color (verdoso). (Ver imagen a continuación)
Haga clic en el botón Cargar bebidas
Obtendrás los siguientes resultados
Descargue Excel que contiene el código anterior
Descargue el código de Excel anterior
Resum
- Una matriz es una variable capaz de almacenar más de un valor.
- Excel VBA admite matrices estáticas y dinámicas
- Las matrices facilitan la escritura de código mantenible en comparación con la declaración de muchas variables para datos que están relacionados lógicamente.