Arrays vba en Excel | Definición, tipos y ejemplos





¿Que es un array vba en Excel?

Arrays vba en Excel, en español matriz o arreglo es una lista de elementos de iguales características agrupadas bajo una sola variable (igual tipo de datos y nombre) . Cada elemento de un array vba se diferencia mediante un sub índice,  por ejemplo nombre (1), nombre (2), nombre (3), etc y se utiliza para declarar con una sola variable un conjunto de datos evitando de esta forma crear tantas variables como elementos tenga el array.

Tipos de Arrays vba en Excel

Existen dos tipos de array vba entre los que tenemos:

  • Array de una sola dimensión: 
  • Array multimensionales

¿Cómo se declaran los Arrays?

La forma general para declarar un array en excel de una sola dimensión es la siguiente:

1
Dim arrayName(index) as dataType
1
Dim arrayName(first index to last index) as dataType

La forma general para declarar array de múltiples  dimensiones es la siguiente:

1
Dim arrayName (num1, num2, num3, ...numN) as datatype

Si hasta el momento has entendido poco o nada sobre arrays vba en Excel, entonces te lo explico a través de ejemplos:

a).- Ejemplo de Arrays de una sola dimensión

Sub Array_1()
'ejemplo de un array de una sola dimensión
'declaramos el array para este caso de 4 elementos
'Vamos usar esta forma para declarar el array
Dim arraynombres(4) As String
For i = 1 To 4
'alimentamos el array con 4 nombres
arraynombres(i) = InputBox("Ingrese nombres de personas", _
"Array de una dimensión", "Escribe un nombre aqui")
Next i
'una ves que tenemos los datos capturados
'podemos hacer consultas por ejemplo
MsgBox "El elemento 3 del array es :" & arraynombres(3)
'este ejemplo sencillo demuestra su gran utilidad.
End Sub

Aqui tienen otro ejemplo básico de su funcionamiento.

 Sub Array_2()
'ejemplo de un array de una sola dimensión
'declaramos el array para este caso de 5 elementos
'Vamos usar otra forma para declarar el array
Dim arrayhojas(1 To 5) As String
For i = 1 To 5
'alimentamos el array con este bucle
arrayhojas(i) = Sheets(i).Name
Next i
'una ves que tenemos los datos capturados (nombre de las hojas)
'vamos a descargar la información apartir de A1
For k = 1 To 5
Range("a" & k).Value = arrayhojas(k)
Next k
End Sub

b).- Ejemplo de Array multidimensional (Para este caso de dos dimensiones)

'En este array ingresaremos el nombre de 5 personas y sus
'respectivas edades.
'Para este caso este array es de tamaño 5x2
'5 filas ya que serán 5 los nombres de personas que ingresaremos y
'dos columnas una para Nombres y otra para edades
Sub Array_multidimensional()
Dim datospersonas(1 To 5, 1 To 2) As Variant
For k = 1 To 5
For i = 1 To 2
If i = 1 Then
mensaje = InputBox("Ingresa el nombre de una persona", _
"Nombre de Personas", "Escribe el nombre de una persona")
Else
mensaje = InputBox("Ingresa la edad de la persona antes indicada", _
"Edad de Personas", "Escribe la edad de la persona")
End If
datospersonas(k, i) = mensaje
Cells(k, i).Value = datospersonas(k, i)
Next i
Next k
End Sub


Comparte esta nota:
Deja tu comentario
Tu Comentario