Skip to content Skip to sidebar Skip to footer

Array Dinamis dalam Macro VBA Excel

Ada beberapa array yang disusun dalam macro yang bersifat sebagai rencana, array ini dinamakan dengan array dinamis.

Ini artinya tidak seperti array tetap dengan kumpulan elemen yang tetap dan diketahui nilai-nilainya.

Sebagai contoh, suatu array akan ditempati dengan sejumlah nama file workbook Excel yang sudah ada di dalam suatu folder.

Jika jumlah file adalah subjek yang harus diganti, Anda tentunya tidak akan tahu secara pasti besar kecilnya ukuran array.

Oleh karena itu, diperlukan array dinamis yang mana dapat membuat suatu array dengan ukuran yang dapat disesuaikan.

Untuk mengatasi jumlah elemen yang tidak diketahui, Anda bisa mengubah ukuran suatu array dengan pasangan kata kunci bernama ReDim dan Preserve.

Statement ReDim adalah kependekan dari redimension, istilah keren dari cara mengubah ukuran array.

Statement Preserve dibutuhkan untuk menyimpan data di array, dan elemen yang akan ditambahkan ke dalam data yang sudah ada.

Dalam istilah VBA, ReDim Preserve mengangkat batasan atas array, sementara menyimpan elemen array yang terkumpul.

Contoh Macro di bawah ini mempertunjukkan perintah ReDim Preserve.

Tujuan dari array di dalam contoh ini adalah untuk mengumpulkan nama-nama semua worksheet yang aktif dipilih secara bersamaan dengan cara menekan tombol Ctrl dan memilih beberapa tab worksheet.

1. Buka VBE di Excel dengan Alt+F11.

2. Buat module dari menu Insert > Module.

3. Pada module baru ketik contoh judul macro misalnya SheetTerpilih lalu tekan Enter:

Sub SheetTerpilih()

4. Di bawahnya tentukan variabel array untuk jumlah elemen yang tidak diketahuinya:

Dim x() As Variant

5. Tentukan variabel untuk jenis data Worksheet:

Dim y As Worksheet

6. Tentukan variabel bilangan untuk menyimpan hitungan worksheet terpilih yang tidak diketahui:

Dim z As Integer

7. Gunakan loop untuk setiap worksheet terpilih:

For Each y In ActiveWindow.SelectedSheets

8. Urutan elemen array dimasukkan ke dalam seiap worksheet terpilih:

z = z + 1

9. Macro ini menyusun array dengan mempertemukan setiap worksheet terpilih. Statement ReDim menambahkan worksheet terpilih paling baru untuk "menumbuhkembangkan" array. Statement Preserve menyimpan data array yang sudah ada, memungkinkan array mengubah ukuran sesuai dengan penambahan elemen berikutnya.

ReDim Preserve x(z)

10. Nama tab sheet yang sesuai dikenali dengan setiap sheet terpilih, dan menempatkannya pada array SheetTerpilih untuk diambil kembali kemudiannya.

x(z) = y.Name

11. Lanjutkan proses loop sampai selesai:

Next y

12. Proses loop melalui setiap elemen dalam array SheetTerpilih, kotak pesan menampilkan nama worksheet terpilih yang sesuai:

For z = 1 To UBound(x)
MsgBox x(z)
Next z

Kode selengkapnya sebagai berikut:

Sub SheetTerpilih()
Dim x() As Variant
Dim y As Worksheet
Dim z As Integer
For Each y In ActiveWindow.SelectedSheets
z = z + 1
ReDim Preserve x(z)
x(z) = y.Name
Next y
For z = 1 To UBound(x)
MsgBox x(z)
Next z
End Sub
Itulah penjelasan tentang array dinamis dalam Macro VBA Excel, semoga bermanfaat.