Utilización de matrices para la programación de vba en excel 2016

La mayoría de los lenguajes de programación compatibles con matrices, incluyendo VBA. Un formación es un conjunto de variables que comparten un mismo nombre. Se hace referencia a una variable específica de la matriz utilizando el nombre de la matriz y un número de índice entre paréntesis. Por ejemplo, puede definir un conjunto de 12 variables de cadena para contener los nombres de los meses del año. Si nombra a la matriz MonthNames, se puede hacer referencia al primer elemento de la matriz como MonthNames (1), el segundo elemento como MonthNames (2), y así sucesivamente.

declarar arrays

Antes de poder utilizar una matriz, debe declararlo. Sin excepciones. A diferencia de las variables normales, VBA es muy estricto en cuanto a esta regla. Se declara una matriz con una instrucción Dim o pública, tal y como se declara una variable regular. Sin embargo, también es necesario especificar el número de elementos de la matriz. Para ello, especificando el primer número de índice, la palabra clave A, y el último número de índice - todos los paréntesis en su interior. El siguiente ejemplo muestra cómo declarar una matriz de 100 enteros:

MiArray Dim (1 a 100) As Integer

Cuando se declara una matriz, se puede optar por especificar sólo el índice superior. Si se omite el índice más bajo, VBA asume que es 0. Por lo tanto, ambas de las siguientes declaraciones declaran la misma matriz de 101 elementos:

Video: Curso VBA Excel. Matrices de dos dimensiones I. Vídeo 7.mp4

MiArray Dim (0 a 100) Como IntegerDim MiArray (100) As Integer

Si quieres VBA para asumir que 1 (en lugar de 0) es el índice más bajo de sus matrices, incluir la siguiente declaración en la sección Declaraciones en la parte superior de su módulo:

Option Base 1

Esta declaración fuerzas VBA para utilizar 1 como el primer número de índice para las matrices que declaran sólo el índice superior. Si esta declaración está presente, las siguientes afirmaciones son idénticos, tanto declarar un array 100 de elementos:

MiArray Dim (1 a 100) Como IntegerDim MiArray (100) As Integer

Las matrices multidimensionales

Las matrices creadas en los ejemplos anteriores son todas las matrices unidimensionales. Piense en matrices unidimensionales como una sola línea de valores. Las matrices se crean en VBA pueden tener hasta 60 dimensiones - a pesar de que rara vez se necesita más de dos o tres dimensiones en una matriz. El ejemplo siguiente se declara una matriz 81-número entero con dos dimensiones:

MiArray Dim (de 1 a 9, de 1 a 9) As Integer

Se puede pensar en esta matriz como ocupando una matriz de 9 x 9 - perfecto para almacenar todos los números en un Sudoku.

Para hacer referencia a un elemento específico en esta matriz, es necesario especificar dos números de índice (similar a su “fila” y su “columna” en la matriz). El siguiente ejemplo muestra cómo se puede asignar un valor a un elemento en esta matriz:

MiArray (3, 4) = 125

Esta instrucción asigna un valor a un solo elemento de la matriz. Si usted está pensando en la matriz en términos de una matriz de 9 x 9, este asigna 125 al elemento situado en la tercera fila y la cuarta columna de la matriz.

Aquí es cómo declarar una matriz tridimensional, con 1.000 elementos:

My3DArray Dim (de 1 a 10, 1 a 10, 1 a 10) As Integer

Se puede pensar en una matriz tridimensional como un cubo. La visualización de una serie de más de tres dimensiones es más difícil.

Las matrices dinámicas

También puede crear dinámica matrices. Una matriz dinámica no tiene un número predeterminado de elementos. Declarar una matriz dinámica con un conjunto vacío de paréntesis:

Dim MiArray () As Integer

Antes de poder utilizar esta matriz, se debe utilizar el ReDim comunicado que contar VBA cuántos elementos de la matriz tiene. Por lo general, el número de elementos de la matriz se determina, mientras que su código se ejecuta. Puede utilizar la instrucción ReDim cualquier número de veces, cambiando el tamaño de la matriz con tanta frecuencia como sea necesario. El siguiente ejemplo demuestra cómo cambiar el número de elementos en una matriz dinámica. Se asume que la variable numElements contiene un valor, que calcula su código.

Video: Arreglos, Vectores y Matrices – Clase 9 – Vídeo 1 de 2 – Programación del Excel con VBA

ReDim MiArray (1 Para numElements)

Al redimensionar una matriz mediante el uso de ReDim, se limpie a cabo cualquiera de los valores almacenados actualmente en los elementos de la matriz. Se puede evitar la destrucción de los viejos valores mediante el uso de la palabra clave Preserve. El siguiente ejemplo muestra cómo se puede preservar los valores de una matriz cuando redimensionar la matriz:

Video: VBA Excel Matrices de una dimensión Vídeo 6

ReDim Preserve MiArray (1 Para numElements)

Si MiMatriz cuenta actualmente con diez elementos, y ejecutar la instrucción anterior con numElements igualando 12, los primeros diez elementos permanecerán intactos, y la matriz tiene espacio para dos elementos adicionales (hasta el número que figura en los numElements variables). Si es igual a 7 numElements sin embargo, los primeros siete elementos se conservan, pero los tres elementos restantes cumplen con su desaparición.

Artículos Relacionados