Matrices de Excel VBA: qué es, cómo usar & Tipos de matrices en VBA

Tabla de contenido:

Anonim

¿Qué es VBA Array?

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 la matriz VBA para hacerlo.

Al usar 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 de Excel VBA. Son contiguos desde el índice 0 hasta el valor de índice más alto.

Este tutorial asume que está usando Microsoft Excel versión 2013. El conocimiento también se aplica a otras versiones de Microsoft Excel.

En este tutorial de programación de VBA, aprenderá:

  • ¿Cuáles son las ventajas de las matrices?
  • Tipos de matrices en VBA
  • Cómo usar Array en Excel VBA
  • Probando nuestra aplicación

¿Cuáles son las ventajas de las matrices?

Los siguientes son algunos de los beneficios que ofrece la función de matriz VBA

  1. Agrupe los datos relacionados lógicamente: digamos que desea almacenar una lista de estudiantes. Puede usar una única variable de matriz que tenga ubicaciones separadas para las categorías de estudiantes, es decir, jardín de infancia, primaria, secundaria, preparatoria, etc.
  2. Las matrices facilitan la escritura de código mantenible. Para los mismos datos relacionados lógicamente, le permite definir una sola variable, en lugar de definir más de una variable.
  3. 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 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. Estos son útiles cuando desea trabajar con entidades conocidas como el número de días en una semana, 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 pueden almacenar. Estos son útiles cuando se trabaja con entidades en las que no puede predeterminar el número.

    Por ejemplo : Dim ArrayMonth () como variante

Sintaxis para declarar matrices

Matrices estáticas

La sintaxis para declarar matrices ESTÁTICAS es la siguiente:

Dim arrayName (n) as datatype

AQUÍ,

Código Acción
Dim arrayName (n) tipo de datos
  1. Declara una variable de matriz llamada arrayName con un tamaño de ny tipo de datos. El tamaño se refiere a la cantidad de elementos que puede almacenar la matriz.

Matrices dinámicas

La sintaxis para declarar matrices DYNAMIC es la siguiente:

Dim arrayName() as datatypeReDim arrayName(4)

AQUÍ,

Código Acción
Dim arrayName () tipo de datos
  1. Declara una variable de matriz llamada arrayName sin especificar el número de elementos
ReDim nombre de matriz (4)
  1. Especifica el tamaño de la matriz después de que se haya definido la matriz.

Dimensiones de la matriz

Una matriz puede ser de una dimensión, dos dimensiones o multidimensional.

  • Una dimensión : en esta dimensión, la matriz usa solo un índice. Por ejemplo, varias personas de cada edad.
  • Dos dimensiones : en esta dimensión, la matriz utiliza dos índices. Por ejemplo, varios 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, temperaturas durante el día. (30, 40, 20).

Cómo usar Array en Excel VBA

Crearemos una aplicación sencilla. Esta aplicación llena una hoja de Excel con datos de una variable de matriz. En este ejemplo de VBA Array, vamos a hacer las siguientes cosas.

  • Cree un nuevo libro de trabajo de Microsoft Excel y guárdelo como Libro de trabajo habilitado para macros de Excel (* .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: crea un nuevo libro de trabajo

  1. Abra Microsoft Excel
  2. Guarde el nuevo libro de trabajo como VBA Arrays.xlsm

Paso 2: agregar 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á familiarizado, lea el tutorial VBA Excel Form Control & ActiveX Control. Le mostrará cómo crear la interfaz.

  1. Agregar un botón de comando a la hoja
  1. Establezca la propiedad de nombre en cmdLoadBeverages
  2. Establezca la propiedad de título en Cargar bebidas

Su GUI ahora debería ser la siguiente

Paso 3: guarda el archivo

  1. Haga clic en el botón Guardar como
  2. Elija 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 para nuestra aplicación.

  1. Haga clic derecho en el botón Cargar bebidas y seleccione ver código
  2. Agregue el siguiente código al evento click de cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()Dim Drinks(1 To 4) As StringDrinks(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

  • Declara una variable de matriz llamada Bebidas. El primer índice de la matriz es 1 y el último índice de la matriz es 4.

Bebidas (1) = "Pepsi"

  • Asigna el valor Pepsi al primer elemento de la matriz. El otro código similar hace lo mismo con los demás elementos de la matriz.

Sheet1.Cells (1, 1) .Value = "Mis bebidas favoritas".

  • Escribe el valor Mis bebidas favoritas en la dirección de celda A1. Sheet1 hace referencia a la hoja, y Cells (1,1) hace referencia a la fila número 1 y la columna 1 (B)

Sheet1.Cells (2, 1) .Value = Bebidas (1)

  • Escribe el valor del elemento de matriz con índice 1 en la fila número dos de la columna 1

Probando nuestra aplicación

Seleccione la pestaña de desarrollador y asegúrese de que el botón de 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

Descargar Excel que contiene el código anterior

Descargue el código de Excel anterior

Resumen

  1. Una matriz es una variable capaz de almacenar más de un valor.
  2. Excel VBA admite matrices estáticas y dinámicas
  3. 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.