ArrayList

Prasyarat:


VBA ArrayList adalah alternatif untuk variable array yang jauh sedikit lebih baik daripada collection bawaan VBA.

Arratlist memiliki banyak sekali fungsi yang sangat berguna yang bisa digunakan untuk mengolah Array, misalnya seperti melakukan Sort, membalik array, menduplikat Array, dll.

Kamu bisa lihat panduan singkat tentang apa saja yang dilakukan ArrayList.

dibawah ini adalah contoh cara menggunakan ArrayList.

Deklarasi Late BindingDim obj As Object
Set obj = CreateObject("System.Collections.ArrayList")
Deklarasi Early BindingDim obj As New ArrayList
Menambah Valueobj.Add "Apel"
Menambah Value dengan Indexobj.Insert 0, "Apel"
Membaca ItemObj.Item(0)
Menghapus Semua itemObj.Clear
Sort AscendingObj.Sort
Sort DescendingObj.Reverse

Mulai Menggunakan ArrayList VBA

Pada awal penggunaan sebuah typedata tentu diawali dengan deklarasi variable terlebih dahulu.

Seperti yang sudah saya jelaskan tentang deklarasi penggunaan object, dimana object bisa dideklarasikan dengan dua cara yaitu Late Binding atau Early Binding.

Baca juga : Object Binding

Late Binding

Berikut ini contoh penggunaan Arraylist dengan Late Binding.

Sub LateBindingArrayList()
    Dim objArrayList As Object ' Gunakan tipe objek untuk late binding
    Set objArrayList = CreateObject("System.Collections.ArrayList")

End sub

Pada late binding ArrayList di deklarasikan sebagai Object, sebelum Objectnya dibuat dengan CreateObject dari “System.Collections.ArrayList”.

Early Binding

Jika ingin menggunakan object dengan Early binding, kamu harus menambahkan object melalui Reference, caranya :

  • Masuk Ke ToolsPreferences
  • Cari dan Aktifkan mscorlib.dll
  • Klik Ok

Setelah Reference Arraylist diaktifkan, maka sekarang kamu bisa mendeklarasikan Arraylist secara langsung.

Sub EarlyBindingArrayList()
    Dim objArrayList As New ArrayList 

End sub

Menambah Nilai ke ArrayList

Untuk menambahkan nilai baru ke arraylist ada beberapa cara bisa secara langsung dengan menggunakan Add.

Contohnya seperti dibawah ini

Sub ContohArrayList()
    Dim Buah As Object
    Set Buah = CreateObject("System.Collections.ArrayList")
    
    ' Menambahkan Item Baru
    Buah.Add "Apel" 
    Buah.Add "Jambu"
    Buah.Add "Semangka"
    Buah.Add "Jeruk"
    
End Sub

Atau dengan menggunakan Insert tetapi dengan menyebutkan posisi atau Index nya, contohnya :

Sub ContohArrayList()
    Dim Buah As Object
    Set Buah = CreateObject("System.Collections.ArrayList")
    
    ' Menambahkan Item Baru
    Buah.Insert 0, "Apel"
    Buah.Insert 1, "Jambu"
End Sub

Membaca Nilai di ArrayList

Untuk membaca nilai yang ada pada ArrayList bisa langsung menggunakan Item berserta dengan index atau posisinya,

Misalnya jika ingin membaca isi dari ArrayList pertama adalah :

Sub ContohArrayList()
    Dim HargaApel as Variant
    
    HargaApel = Buah.Item(0)
End Sub

Atau Jika ingin membaca semua Item yang ada di ArrayList bisa gunakan pengulangan For Each, Contohnya :

Sub ContohArrayList()
    Dim item As Variant
    For Each item In Buah
        Debug.Print item
    Next item
End Sub

Melakukan Sort di ArrayList

Didalam ArrayList memiliki sebuah method untuk melakukan mengurutkan data.

Perngurutan Array ini bisa dilakukan dengan Ascending ataupun Descending.

Untuk contoh penggunaan pengurutan data array bisa dilihat dibawah ini.

Sub ContohArrayList()
    Dim Buah As Object
    Set Buah = CreateObject("System.Collections.ArrayList")
    
    ' Menambahkan Item Baru
    Buah.Add "Apel" 
    Buah.Add "Jambu"
    Buah.Add "Semangka"
    Buah.Add "Jeruk"

    'Melakukan Pengurutan Ascending
    Buah.Sort

    'Melakukan Pengurutan Descending
    Buah.Reverse
End Sub

Menduplikat Array

Selain mengurutkan, ArrayList juga memiliki kemampuan untuk melakukan cloning atau menduplikat dirinya sendiri menjadi variable baru.

Method yang digunakan adalah Clone, untuk contohnya bisa dilihat dibawah ini

Sub ContohArrayList()
    Dim Buah As Object
    Set Buah = CreateObject("System.Collections.ArrayList")
    
    ' Menambahkan Item Baru
    Buah.Add "Apel" 
    Buah.Add "Jambu"
    Buah.Add "Semangka"
    Buah.Add "Jeruk"

    'Deklarasi variable Baru
    Dim Buah2 As Object
    Set Buah2 = Buah.Clone

End Sub

Pada Script diatas, Buah di duplikasi menjadi Buah2. Sehingga 2 variable ini memiliki Nilai yang sama.

Mengubah ArrayList Menjadi Array

Method lainnya yang dimiliki ArrayList adalah melakukan konversi ke Array dengan menggunakan method toArray.

Ini tentu memiliki banyak fungsi diantara adalah bisa langsung memasukan ArrayList kedalam Range dengan menggunakan ToArray.

Sub ContohArrayList()
    Dim Buah As Object
    Set Buah = CreateObject("System.Collections.ArrayList")
    
    ' Menambahkan Item Baru
    Buah.Add "Apel" 
    Buah.Add "Jambu"
    Buah.Add "Semangka"
    Buah.Add "Jeruk"

    'Menyimpan di A1 kesamping
    Sheet1.Range("A1").Resize(1, Buah.Count).Value = Buah.toArray

    'Menyimpan di A1 kebawah
    Sheet1.Range("A1").Resize(Buah.Count, 1).Value = Application.Transpose(Buah.toArray)
    
End Sub

Pada Script diatas dengan menggunakan toArray, ArrayList bisa dimasukan langsung kedalam Range.

Leave a Reply

Your email address will not be published. Required fields are marked *

Chat WhatsApp
WhatsApp