VBA Dichiarazione di una matrice in VBA


Esempio

Dichiarare una matrice è molto simile alla dichiarazione di una variabile, tranne che è necessario dichiarare la dimensione della matrice subito dopo il suo nome:

Dim myArray(9) As String 'Declaring an array that will contain up to 10 strings

Per impostazione predefinita, gli array in VBA sono indicizzati da ZERO , quindi il numero all'interno della parentesi non si riferisce alla dimensione dell'array, ma piuttosto all'indice dell'ultimo elemento

Accesso agli elementi

L'accesso a un elemento dell'array viene effettuato utilizzando il nome dell'array, seguito dall'indice dell'elemento, tra parentesi:

myArray(0) = "first element"
myArray(5) = "sixth element"
myArray(9) = "last element"

Indicizzazione delle matrici

Puoi modificare l'indicizzazione degli array posizionando questa riga nella parte superiore di un modulo:

Option Base 1

Con questa linea, tutti gli array dichiarati nel modulo verranno indicizzati da ONE .

Indice specifico

È inoltre possibile dichiarare ciascuna matrice con il proprio indice utilizzando la parola chiave To e il limite inferiore e superiore (= indice):

Dim mySecondArray(1 To 12) As String 'Array of 12 strings indexed from 1 to 12
Dim myThirdArray(13 To 24) As String 'Array of 12 strings indexed from 13 to 24

Dichiarazione Dinamica

Quando non si conosce la dimensione della matrice prima della sua dichiarazione, è possibile utilizzare la dichiarazione dinamica e la parola chiave ReDim :

Dim myDynamicArray() As Strings 'Creates an Array of an unknown number of strings
ReDim myDynamicArray(5) 'This resets the array to 6 elements

Nota che l'uso della parola chiave ReDim cancellerà qualsiasi contenuto precedente della tua matrice. Per evitare ciò, è possibile utilizzare la parola chiave Preserve dopo ReDim :

Dim myDynamicArray(5) As String
myDynamicArray(0) = "Something I want to keep"

ReDim Preserve myDynamicArray(8) 'Expand the size to up to 9 strings
Debug.Print myDynamicArray(0) ' still prints the element