ArrayList
Info
Esempi
Linguaggio
Librerie
Formule
Ultimi Inseriti

 Login

 Password

E' un oggetto simile ad una Collection ma basta un'occhiata alle proprietà per capire la flessibilità molto maggiore che consente, a cominciare dall'ordinamento nativo.
Ha però lo svantaggio che non fa parte delle librerie standard di VBA, ma fa parte delle librerie denominate System.Collections e questo determina la necessità di una certa attenzione quando distribuiamo il nostro file.

Dichiarazione
Il modo più semplice di utilizzare un oggetto ArrayDictionary è con una dichiarazione di tipo Late Binding:
Dim listas Object
Set list= CreateObject("System.Collections.ArrayList")

Volendo utilizzare una dichiarazione Early Binding dobbiamo prima di tutto creare il collegamento alla librerie del programma, le troviamo nel menù:
Strumenti --> Riferimenti
ma dovremmo caricare una libreria esterna, la troviamo a questo indirizzo:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscorlib.tlb

Fatto questo possiamo inserire un oggetto dictionary all'interno del nostro codice, in questo modo, anche se non sarà disponibile l'IntelliSense :
Dim listAs New ArrayList

Proprietà
AzioneCome fare
Aggiungere elementolist.Add "Apple"
Aggiungere elemento in una posizionelist.Insert Posizione, "Apple"
Togliere un elemento dalla posizionelist.RemoveAt Posizione
Togliere un elemento dal nomelist.Remove "Apple"
Togliere un blocco di elementilist.RemoveRange DaPosizione,NrElementi
Svuotarelist.Clear
Accedere all'elementolist.Item(Posizione)
Numero degli elementilist.Count
Verifica se l'elemento esistelist.Contains("Apple")
Posizione di un elementofruit.IndexOf("Apple", 0)
Copia di un ArrayListSet list2 = list.Clone
Copia in un Arraylist.ToArray
Ordinamentolist.Sort
Ordinamento inversolist.Reverse

Scorrere gli elementi
Scorrendo le chiavi
Dim item As Variant
For Each item In list
  Debug.Print item
Next item
Scorrendo gli indici:
Dim i As Long
For i = 0 To list.Count - 1
  Debug.Print list.item(i)
Next i

Su Range
Riportare un ArraList su di un range in colonna:
Sheet1.Range("A3").Resize(list.Count, 1).Value = WorksheetFunction.Transpose(list.ToArray)
Riportare un ArraList su di un range in colonna:
Sheet1.Range("A1").Resize(1, list.Count).Value = list.ToArray

Distribuzione dell'applicazione Excel contenente un oggetto ArrayList
Come già detto, l'oggetto ArrayList non fa parte di Excel VBA: ciò significa che tutti gli utenti del file devono avere accesso al file 'mscorlib.tlb'
Inoltre, l'utente deve avere installata la versione V3.5 di .Net Framework deve essere installata altrimenti l'applicazione non funzionerà.
Un modo per segnalare questo problema è verificare la presenza del file 'mscorlib.tlb' e nel caso fornire un appropriato messaggio.
 

data4idea srls - PIva 01881000937 - info@data4idea.it