Collezione VBA

Oggetto di raccolta VBA di Excel

Nella codifica VBA, oltre alla raccolta di elementi esistente in un gruppo, possiamo creare anche i nostri gruppi di raccolta. Nei nostri numerosi articoli abbiamo parlato delle variabili oggetto e in questo tutorial esamineremo in dettaglio l'oggetto della raccolta VBA.

Se hai letto il nostro precedente articolo "Array VBA", questo sarà molto più facile da capire. Gli array vengono utilizzati per raggruppare le variabili sotto lo stesso tetto, allo stesso modo, Collection viene utilizzato anche per memorizzare un gruppo di variabili.

Le raccolte vengono utilizzate per archiviare oggetti. Sono molto più flessibili degli array VBA mentre gli array hanno limiti di dimensione fissi ma le raccolte non hanno limiti di dimensione fissi in un dato momento e non richiedono nemmeno il ridimensionamento manuale.

La raccolta VBA è molto simile al "Dizionario VBA" ma il dizionario richiede che il riferimento a un oggetto esterno sia impostato nella finestra di riferimento dell'oggetto. Con il dizionario VBA dobbiamo impostare il tipo di riferimento come "Microsoft Scripting Runtime" ma Collection non richiede nessuno di questi adattamenti aggiuntivi.

Come creare un oggetto di raccolta in VBA?

Per iniziare con la raccolta, prima dobbiamo dichiarare la variabile come "Collection".

Puoi scaricare questo modello Excel per la raccolta VBA qui - Modello Excel per la raccolta VBA

Codice:

 Sub Collection_Example () Dim Col As Collection End Sub 

Poiché la raccolta è una variabile oggetto, è necessario impostare il riferimento all'oggetto creando una nuova istanza.

Codice:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection End Sub 

Ora con la variabile, possiamo accedere a tutti i metodi di raccolta della variabile “Col”.

Codice:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col. End Sub 

Prima di utilizzare questi metodi è necessario dichiarare una variabile come stringa.

Codice:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Dim ColResult As String End Sub 

Ora usa la variabile "Col" scegli il metodo "Aggiungi".

Codice:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add End Sub 

Sotto il metodo Aggiungi, abbiamo alcuni parametri. Supponiamo di memorizzare i nomi dei marchi di dispositivi mobili con il loro prezzo di vendita medio sul mercato.

In Item, l'argomento inserisce il prezzo del cellulare.

Codice:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, End Sub 

Successivamente, in Argomento chiave , inserisci il nome del marchio del cellulare.

Codice:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" End Sub 

Ora per la variabile "ColResult", memorizzeremo il risultato della variabile oggetto "Col".

Codice:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col (End Sub 

Quando apri la parentesi della variabile "Col" possiamo vedere l'argomento come Indice per questo argomento, dobbiamo fornire il valore dell'argomento chiave dal metodo Collection add, ovvero il nome del marchio del cellulare.

Codice:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub 

Ora mostra il risultato nella finestra del messaggio in VBA.

Codice:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub 

Ok, abbiamo finito quando eseguiamo il codice dovremmo vedere il prezzo del marchio mobile "Redmi".

Migliore comprensione dei parametri chiave e articolo

Sono sicuro che non sia facile capire i parametri dell'oggetto Collection. Lascia che ti spieghi con un semplice esempio.

Immagina di avere un menu di frutta con il loro nome e il prezzo dei frutti. Supponiamo che tu stia cercando il prezzo della frutta "Mela" in base al nome del frutto.

Per cercare il prezzo del frutto dobbiamo menzionare il nome del frutto, ovvero nella raccolta linguaggio VBA Name of the Fruit is Key e il prezzo del frutto è “Item”.

È come applicare la funzione CERCA.VERT o CERCA.ORIZZ, in base al valore di ricerca recupereremo i dati richiesti dal database. Qui il valore di ricerca è Chiave e il risultato è Oggetto.

Esempio avanzato

Immagina di essere un gestore di un negozio in uno dei negozi al dettaglio e di essere responsabile della gestione delle domande dei clienti. Una di queste query del cliente è una richiesta sul prezzo del prodotto.

È necessario consentire al cliente di cercare il prezzo del prodotto con informazioni complete. Allo stesso modo, è necessario mostrare il messaggio in caso di dati non trovati. Di seguito è riportato il codice di esempio che presenterà la casella di input di fronte all'utente e richiederà di inserire il nome del prodotto che stanno cercando, se il prodotto è presente nella collezione mostrerà il prezzo del prodotto menzionato oppure lo farà mostra il messaggio come "Il prodotto che stai cercando non esiste".

Codice:

 Sub Collection_Example2() Dim ItemsCol As Collection Dim ColResult As String Set ItemsCol = New Collection ItemsCol.Add Key:="Apple", Item:=150 ItemsCol.Add Key:="Orange", Item:=75 ItemsCol.Add Key:="Water Melon", Item:=45 ItemsCol.Add Key:="Mush Millan", Item:=85 ItemsCol.Add Key:="Mango", Item:=65 ColResult = Application.InputBox(Prompt:="Please Enter the Fruit Name") If ItemsCol(ColResult)  "" Then MsgBox "The Price of the Fruit " & ColResult & " is : " & ItemsCol(ColResult) Else MsgBox "Price of the Fruit You are Looking for Doesn't Exists in the Collection" End If End Sub