Declarar e inicializar array de cadenas en VBA

Glen Alfaro 30 enero 2023
  1. Declarar e inicializar array de cadenas dinámicas
  2. Declarar e inicializar array de cadenas estáticas
Declarar e inicializar array de cadenas en VBA

En cualquier ejecución de código en cualquier lenguaje de programación, la necesidad de almacenar información a veces es inevitable. Lo bueno es que VBA permite varias opciones a la hora de almacenar datos, y una de ellas son los arrays.

En VBA, los arrays se clasifican en función de su longitud y flexibilidad de tipos de datos.

  1. Arrays dinámicos - arrays que son variables en longitud y tipo de datos
  2. Arrays estáticos - arrays que son fijos en longitud y tipo de datos.

Además, los arrays en VBA también se pueden clasificar según sus dimensiones.

  1. array de una sola dimensión: arrays que tienen una única array de una sola línea.
  2. array multidimensional: arrays que tienen varias matrices de una sola línea.

Declarar e inicializar array de cadenas dinámicas

Los bloques de código a continuación demostrarán cómo crear e inicializar un array de cadenas.

Método 1: declarar como tipo de datos Variant

Declare un array dinámica creando una variable en un tipo de datos variante. Entonces la array será inicializada por una colección (Array()).

Sub DynamicArrayDemo()

Dim stringArray As Variant

stringArray = Array("Lion", "Tiger", "Cheetah", "Monkey", "Elephant", "Zebra")

Debug.Print stringArray(3)

End Sub

Salida DynamicArrayDemo:

Monkey

Método 2: declarar como cadena, luego usar la función Dividir()

Declare un array de cadenas denominada stringArray sin declarar explícitamente los límites.

Sub DynamicArrayDemo()

Dim stringArray() As String
Dim str As String

str = "Lion,Tiger,Cheetah,Monkey,Elephant,Zebra"

stringArray = Split("Lion,Tiger,Cheetah,Monkey,Elephant,Zebra", ",")

Debug.Print stringArray(2)
End Sub

Salida DynamicArrayDemo:

Cheetah

Declarar e inicializar array de cadenas estáticas

Los bloques de código a continuación muestran diferentes métodos para declarar e inicializar un array de cadenas estáticas.

Método 1 - Declarar LowerBound y UpperBound:

Declare un array de cadenas estática declarando explícitamente su primer y último elemento.

Sintaxis:

Dim stringArray([LowerBound] To [UpperBound]) As String

Parámetros:

[LowerBound] El entero clave al que se hace referencia el primer elemento del array.
[UpperBound] El entero clave al que se hace referencia el último elemento del array.

El siguiente ejemplo declarará un array de cadenas llamada stringArray con seis elementos del elemento 0 al 5.

Sub StaticArrayDemo()

Dim stringArray(0 To 5) As String

stringArray(0) = "Lion"
stringArray(1) = "Tiger"
stringArray(2) = "Cheetah"
stringArray(3) = "Monkey"
stringArray(4) = "Elephant"
stringArray(5) = "Zebra"

Debug.Print stringArray(4)

End Sub

Salida StaticArrayDemo:

Elephant

Método 2: cambiar explícitamente el límite inferior

Declare un array de cadenas mediante un valor genérico de límite inferior.

Option Base 1

Sub StaticArrayDemo()
Dim stringArray(6) As String

stringArray(1) = "Lion"
stringArray(2) = "Tiger"
stringArray(3) = "Cheetah"
stringArray(4) = "Monkey"
stringArray(5) = "Elephant"
stringArray(6) = "Zebra"

Debug.Print stringArray(1)

End Sub

Salida StaticArrayDemo:

Lion

Método 3: declarar e inicializar usando un array multidimensional

En VBA, puede declarar matrices de hasta 60 dimensiones.

Sintaxis:

Dim stingArray( [LowerBound1] to [UpperBound1],[LowerBound2] to [UpperBound2], . . .  ) as String

Parámetros:

[LowerBound1] El entero clave es el primer elemento del array al que se hace referencia en la primera dimensión del array.
[UpperBound1] El entero clave es el último elemento del array al que se hace referencia en la primera dimensión del array.
[LowerBound2] El entero clave es el primer elemento del array al que se hace referencia en la segunda dimensión del array.
[UpperBound2] El entero clave es el último elemento del array al que se hace referencia en la segunda dimensión del array.

En el siguiente ejemplo, se declaró un array multidimensional donde la primera dimensión es de 1 a 5; entonces el otro es 1 a 5.

Sub MultiStaticArrayDemo()

Dim stringArray(1 To 5, 1 To 5) As String
Dim i, j As Integer

For i = 1 To 5
    For j = 1 To 5
        stringArray(i, j) = "The value of (" & i & "," & j & ") is " & i * j
        Debug.Print stringArray(i, j)
    Next j
Next i

End Sub

Salida MultiStaticArrayDemo:

The value of (1,1) is 1
The value of (1,2) is 2
The value of (1,3) is 3
The value of (1,4) is 4
The value of (1,5) is 5
The value of (2,1) is 2
The value of (2,2) is 4
The value of (2,3) is 6
The value of (2,4) is 8
The value of (2,5) is 10
The value of (3,1) is 3
The value of (3,2) is 6
The value of (3,3) is 9
The value of (3,4) is 12
The value of (3,5) is 15
The value of (4,1) is 4
The value of (4,2) is 8
The value of (4,3) is 12
The value of (4,4) is 16
The value of (4,5) is 20
The value of (5,1) is 5
The value of (5,2) is 10
The value of (5,3) is 15
The value of (5,4) is 20
The value of (5,5) is 25

Artículo relacionado - VBA Array