Senin, 09 April 2018

Bekerja dengan Array


Gambar 203. VBA Excel Array


Sebagian besar bahasa pemrograman mendukung array. Array adalah sekelompok variabel yang memiliki nama umum. Anda merujuk ke variabel tertentu dalam Array dengan menggunakan nama Array dan nomor indeks dalam tanda kurung. 

Misalnya, Anda dapat menentukan Array dari 12 variabel string untuk menampung nama nama bulan di tahun ini. Jika Anda menamai Array MonthNames, Anda dapat merujuk ke elemen pertama dari larik sebagai MonthNames (1), elemen kedua sebagai MonthNames (2), dan seterusnya.

Deklarasikan Array

Sebelum Anda dapat menggunakan Array, Anda harus menyetelnya. Tidak ada pengecualian. Tidak seperti variabel biasanya, VBA sangat ketat tentang aturan ini.

Anda mendeklarasikan array dengan Dim atau Pernyataan publik, sama seperti Anda mendeklarasikan variabel biasa. Namun, Anda juga butuh untuk menentukan jumlah elemen dalam Array.

Anda memulai ini dengan menentukan nomor indeks pertama, kata kunci Ke, dan nomor indeks terakhir. Contoh berikut menunjukkan cara mendeklarasikan array 100 bilangan bulat:

Dim MyArray (1 To 100) sebagai Integer. Saat Anda mendeklarasikan array, Anda dapat memilih untuk hanya menetapkan indeks atas. VBA mengasumsikan bahwa 0 adalah indeks yang lebih rendah. Oleh karena itu, kedua pernyataan berikut mendeklarasikan susunan 101-elemen yang sama:
Dim MyArray (0 To 100) As Integer
Dim MyArray (100) As Integer
Jika Anda ingin VBA menganggap bahwa 1 (bukan 0) adalah indeks yang paling rendah untuk array Anda, sertakan pernyataan berikut di bagian Deklarasi dari modul Anda :
  • Option Base 1
Pernyataan ini memaksa VBA untuk menggunakan 1 sebagai nomor indeks pertama untuk array yang hanya menyatakan indeks atas. Jika pernyataan ini hadir, pernyataan berikut ini identik, keduanya menyatakan larik 100-elemen:
Dim MyArray (1 hingga 100) sebagai Integer
Dim MyArray (100) As Integer

Array Multidimensi
Array yang dibuat dalam semua contoh sebelumnya adalah Array satu dimensi. Pikirkan susunan satu dimensi sebagai satu baris nilai. Array yang Anda buat di VBA dapat memiliki sebanyak 60 dimensi - meskipun Anda jarang membutuhkan lebih banyak dari dua atau tiga dimensi dalam Array.

Contoh berikut mendeklarasikan sebuah Array 81-integer dalam dua dimensi:
Dim MyArray (1 To 9, 1 To 9) As Integer
Anda dapat menganggap array ini sebagai menempati matriks  9 x 9 sempurna untuk menyimpan semua angka dalam teka-teki soduku. Untuk merujuk ke elemen tertentu dalam larik ini, Anda perlu menentukan dua indeks angka (mirip dengan "baris" dan  "kolom" di matriks). 

Contoh berikut ini menunjukkan bagaimana Anda dapat menetapkan nilai ke elemen dalam Array ini:
MyArray (3, 4) = 125
Pernyataan ini memberikan nilai ke satu elemen dalam Array. Jika Anda berpikir tentang array dalam hal matriks 9 x 9, ini menetapkan elemen 125 terletak di baris ketiga dan kolom keempat dari matriks.

Berikut cara mendeklarasikan array tiga dimensi, dengan 1.000 elemen:
  • Dim My3DArray (1 To 10, 1 To 10, 1 To 10) As Integer
Anda bisa membayangkan array tiga dimensi sebagai kubus. Memvisualisasikan suatu array
lebih dari tiga dimensi lebih sulit. Maaf, saya belum menguasai dimensi keempat dan seterusnya.

Dynamic Arrays
Anda juga dapat membuat dynamicarrays. Array dinamis tidak memiliki batasan jumlah elemen. Deklarasikan array dinamis dengan seperangkat tanda kurung kosong:
  • Dim MyArray () As Integer

Sebelum Anda dapat menggunakan array ini, Anda harus menggunakan pernyataan ReDim untuk memberi tahu VBA berapa banyak elemen yang dimiliki array. Biasanya, jumlah elemen dalam array ditentukan saat kode Anda berjalan. Anda dapat menggunakan status ReDim berapa kali, mengubah ukuran array sesering yang diperlukan.

Contoh berikut menunjukkan cara mengubah jumlah elemen dalam array dinamis. Ini mengasumsikan bahwa variabel NumElements mengandung nilai,
yang dihitung kalkulasi Anda.
  • ReDim MyArray (1 To NumElements)

Saat Anda melakukan redimensi suatu array dengan menggunakan ReDim, Anda menghapus nilai apa pun yang disimpan dalam elemen array. Anda dapat menghindari penghapusan nilai-nilai lama dengan menggunakan kata kunci Preserve.

Contoh berikut menunjukkan bagaimana Anda bisa mempertahankan nilai-nilai array saat Anda redimension array :
  • ReDim Preserve MyArray(1 To NumElements)

Jika MyArray saat ini memiliki sepuluh elemen dan Anda menjalankan keadaan sebelumnya dengan NumElements menyamai 12, sepuluh elemen pertama tetap utuh, dan
array memiliki ruang untuk dua elemen tambahan (hingga nomor yang ada di variabel NumElements).

Jika NumElements sama dengan 7, tujuh elemen yang pertama dipertahankan tetapi tiga elemen yang tersisa akan terhapus.


Tidak ada komentar:

Posting Komentar

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.