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
- 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.
- 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.
- 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 |
|
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 (). |
|
Nomearray ReDim(4) |
|
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
- Apri Microsoft Excel
- 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
- Aggiungere un pulsante di comando al foglio
- Imposta la proprietà name su cmdLoadBeverages
- Imposta la proprietà caption su Carica bevande
La tua GUI ora dovrebbe essere la seguente
Passaggio 3: salvare il file
- Fare clic sul pulsante Salva con nome
- Scegli Cartella di lavoro con attivazione macro di Excel (*.xlsm) come mostrato nell'immagine seguente
Passaggio 4: scrivere il codice
Ora scriveremo il codice per la nostra applicazione
- Fare clic con il tasto destro sul pulsante Carica bevande e selezionare Visualizza codice
- 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 |
|
Bevande(1) = “Pepsi” |
|
Foglio1.Cells(1, 1).Valore = "Le mie bevande preferite". |
|
Foglio1.Cells(2, 1).Valore = Bevande(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)
Fare clic sul pulsante Carica bevande
Otterrai i seguenti risultati
Scarica Excel contenente il codice sopra
Sintesi
- Un array è una variabile in grado di memorizzare più di un valore
- Excel VBA supporta array statici e dinamici
- Gli array semplificano la scrittura di codice gestibile rispetto alla dichiarazione di molte variabili per dati logicamente correlati.