Array VBA di Excel: cos'è, come utilizzare e tipi di array in VBA

Cos'è l'array VBA?

Un array è definito come una posizione di memoria in grado di memorizzare più di un valore. I valori devono essere tutti dello stesso tipo di dati. Supponiamo che tu voglia memorizzare un elenco delle tue bevande preferite in un'unica variabile, puoi utilizzare l'array VBA per farlo.

Utilizzando un array è possibile fare riferimento ai valori correlati con lo stesso nome. È possibile utilizzare un indice o un pedice per distinguerli. I singoli valori vengono definiti elementi dell'array VBA di Excel. Sono contigui dall'indice 0 fino al valore di indice più alto.

Questo tutorial presuppone che tu stia utilizzando Microsoft Excel versione 2013. La conoscenza si applica ancora ad altre versioni di Microsoft Anche Excel.

Quali sono i vantaggi degli array?

Di seguito sono riportati alcuni dei vantaggi offerti dalla funzione array VBA

  1. Raggruppare insieme dati logicamente correlati: supponiamo che tu voglia memorizzare un elenco di studenti. È possibile utilizzare una singola variabile di array con posizioni separate per le categorie di studenti, ad esempio scuola materna, primaria, secondaria, superiore, ecc.
  2. Gli array semplificano la scrittura di codice gestibile. Per gli stessi dati logicamente correlati, consente di definire una singola variabile, invece di definire più di una variabile.
  3. Prestazioni migliori: una volta definito un array, è più veloce recuperare, ordinare e modificare i dati.

Tipi di array in VBA

VBA supporta due tipi di array vale a dire;

  • statica – Questi tipi di array hanno un numero fisso predeterminato di elementi che possono essere memorizzati. Non è possibile modificare la dimensione del tipo di dati di un array statico. Questi sono utili quando vuoi lavorare con entità note come il numero di giorni in una settimana, il sesso, ecc.Per Esempio: Dim ArrayMonth(12) come stringa
  • Dinamico – Questi tipi di array non hanno un numero fisso predeterminato di elementi che possono essere memorizzati. Questi sono utili quando si lavora con entità di cui non è possibile predeterminare il numero.Per Esempio: Dim ArrayMonth() come variante

Sintassi per dichiarare gli array

Matrici statiche

La sintassi per dichiarare STATICO array è il seguente:

Dim arrayName (n) as datatype

QUI,

Code Action
Dim arrayName (n) tipo di dati
  1. Dichiara una variabile array denominata arrayName con dimensione n e tipo di dati. La dimensione si riferisce al numero di elementi che l'array può memorizzare.

Matrici dinamiche

La sintassi per dichiarare DINAMICA array è il seguente:

Dim arrayName() as datatype
ReDim arrayName(4)

QUI,

Code Action
Tipo di dati Dim arrayName ().
  1. Dichiara una variabile array denominata arrayName senza specificare il numero di elementi
Nomearray ReDim(4)
  1. Specifica la dimensione dell'array dopo che l'array è stato definito.

Dimensioni della matrice

Un array può essere monodimensionale, bidimensionale o multidimensionale.

  • Una dimensione: In questa dimensione, l'array utilizza un solo indice. Ad esempio, un numero di persone di ciascuna età.
  • Due dimensioni: In questa dimensione, l'array utilizza due indici. Ad esempio, un numero di studenti in ciascuna classe. Richiede il numero di classi e il numero di studenti in ciascuna classe
  • Multidimensionale: In questa dimensione, l'array utilizza più di due indici. Ad esempio, le temperature durante il giorno. (30, 40, 20).

Come utilizzare l'array in Excel VBA

Creeremo una semplice applicazione. Questa applicazione popola un foglio Excel con dati da una variabile array. In questo esempio di array VBA, faremo le seguenti cose.

  • Crea un nuovo Microsoft Cartella di lavoro di Excel e salvarla come cartella di lavoro con attivazione macro di Excel (*.xlsm)
  • Aggiungere un pulsante di comando alla cartella di lavoro
  • Imposta le proprietà del nome e della didascalia del pulsante di comando
  • Programmazione del VBA che popola il foglio Excel

Facciamo questo esercizio passo dopo passo,

Passaggio 1: creare una nuova cartella di lavoro

  1. Apri Microsoft Excel
  2. Salva la nuova cartella di lavoro come VBA Arrays.xlsm

Passaggio 2: aggiungere un pulsante di comando

Nota: Questa sezione presuppone che tu abbia familiarità con il processo di creazione di un'interfaccia in Excel. Se non lo conosci, leggi il tutorial Controllo modulo Excel VBA e controllo ActiveX. Ti mostrerà come creare l'interfaccia

  1. Aggiungere un pulsante di comando al foglio

Utilizza l'array in Excel VBA

  1. Imposta la proprietà name su cmdLoadBeverages
  2. Imposta la proprietà caption su Carica bevande

La tua GUI ora dovrebbe essere la seguente

Utilizza l'array in Excel VBA

Passaggio 3: salvare il file

  1. Fare clic sul pulsante Salva con nome
  2. Scegli Cartella di lavoro con attivazione macro di Excel (*.xlsm) come mostrato nell'immagine seguente

Utilizza l'array in Excel VBA

Passaggio 4: scrivere il codice

Ora scriveremo il codice per la nostra applicazione

  1. Fare clic con il tasto destro sul pulsante Carica bevande e selezionare Visualizza codice
  2. Aggiungere il seguente codice all'evento click di cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()
    Dim Drinks(1 To 4) As String
     
    Drinks(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

QUI,

Code Action
Bevande fioche (da 1 a 4) come stringa
  • Dichiara una variabile array chiamata Drinks. Il primo indice array è 1 e l'ultimo indice array è 4.
Bevande(1) = “Pepsi”
  • Assegna il valore Pepsi al primo elemento dell'array. L'altro codice simile fa lo stesso per gli altri elementi dell'array.
Foglio1.Cells(1, 1).Valore = "Le mie bevande preferite".
  • Scrive il valore Le mie bevande preferite nell'indirizzo della cella A1. Foglio1 fa riferimento al foglio e Celle(1,1) fa riferimento alla riga numero 1 e alla colonna 1 (B)
Foglio1.Cells(2, 1).Valore = Bevande(1)
  • Scrive il valore dell'elemento dell'array con indice 1 nella riga numero due della colonna 1

Testare la nostra applicazione

Seleziona la scheda sviluppatore e assicurati che il pulsante della modalità Progettazione sia "disattivato". L'indicatore è che avrà uno sfondo bianco e non uno sfondo colorato (verdastro). (Vedi immagine sotto)

Testare un'applicazione in Excel VBA

Fare clic sul pulsante Carica bevande

Otterrai i seguenti risultati

Testare un'applicazione in Excel VBA

Scarica Excel contenente il codice sopra

Scarica il codice Excel sopra

Sintesi

  1. Un array è una variabile in grado di memorizzare più di un valore
  2. Excel VBA supporta array statici e dinamici
  3. Gli array semplificano la scrittura di codice gestibile rispetto alla dichiarazione di molte variabili per dati logicamente correlati.