Mengenal Object Model Pada VBA Excel #10

Mengenal Object Model Pada VBA Excel #10

Panduan dasar tentang object VBA Excel beserta cara menggunakan object excel pada pemrograman VBA Excel.
Object VBA Excel

Object VBA Excel - Artikel ini merupakan seri ke-10 yang membahas tentang Macro VBA Excel. Sebelum melanjutkan membaca sebaiknya Anda sudah selesai mempelajari 9 tutorial VBA Excel sebelumnya yang bisa Anda temukan pada halaman berikut: Seri tutorial VBA Excel.

Pada seri ini Kelas Excel akan membahas mengenai Object VBA Excel.

Tentang Object Oriented Progamming (OOP)

Perlu Anda tahu bahwa VBA Excel merupakan bahasa pemrograman yang berorientasi pada object (Object Oriented Programming) atau disingkat OOP. Bagi yang sudah terbiasa dengan pemrograman saya yakin istilah OOP ini sudah tidak asing lagi.

Untuk yang masih awam barang kali akan bertanya "Apa yang dimaksud dengan pemrograman berorientasi object?"

OOP (Object Oriented Programming) atau pemrograman berorientasikan objek (PBO) adalah suatu metode pemrograman yang berorientasi kepada objek. Tujuan adanya OOP adalah untuk mempermudah developer dalam mengembangkan sebuah program atau aplikasi dengan cara mengikuti model yang telah ada dalam kehidupan sehari-hari.

Dalam kehidupan sehari-hari, Anda dapat membayangkan objek adalah sebuah benda dengan fungsi tertentu. Handphone sebagai alat komunikasi misalnya. Sebuah objek dapat tersusun atas beberapa objek lain yang lebih kecil. Pada contoh Handphone misalnya terbuat atas keypad, monitor, baterai, casing, dan piranti piranti kecil lainnya yang masing-masing tentunya juga memiliki bagian-bagian penyusun lainnya.

Mengenai OOP (Object Oriented Programming) ini silahkan Anda mencari informasi lebih lanjut di Google.

Microsoft Excel Object

Object pada Excel adalah Sebuah bentuk benda pada aplikasi excel yang berisi sekumpulan data serta mencerminkan sesuatu dan kemampuan melakukan sesuatu atau merespon perlakuan terhadapnya sebagai satu kesatuan.

Bentuk Object Excel yang sering akan digunakan misalnya workbook, worksheet, range, cell, chart dan lain sebagainya.

Member Object

Masing-masing objek pada VBA Excel umumnya memiliki ciri, potensi dan respon-respon tertentu dimana satu dan lainnya saling terkait.

Komponen sebuah object ini disebut sebagai member. Penyusunnya bisa berupa nilai-nilai atribut tertentu, object-object lainnya, prosedur untuk melakukan sesuatu atau untuk menerima respon perlakuan terhadap objek tersebut.

Member-member object tersebut dapat dikelompokkan menjadi 3 bagian, yaitu :

Property
Data yang menunjukkan ciri khusus atau bagian sebuah object. Biasa digunakan untuk mengatur atau mengambil nilai sebuah object.
Methods
Merupakan sebuah prosedur atau fungsi untuk melakukan sebuah tugas tertentu pada object
Events
Merupakan sebuah prosedur atau fungsi yang dipicu saat sebuah event, peristiwa atau aktifitas tertentu terjadi pada object.

Sebuah worksheet misalnya memiliki:

  1. Property: Name, Columns, Rows, Range, Cells, Comments, PageSetup, AutoFilter dan lain sebagainya.
  2. Methods: Activate, Calculate, Copy, Paste, PasteSpecial, Delete, Move, PrintOut, PrintPreview, Protect, dll.
  3. Events: Activate, BeforeDelete, BeforeDoubleClick, Change, Deactivate, SelectionChange, dll.

Anda dengan mudah dapat mengetahui setiap object dan member-membernya dengan membuka Object browser pada VBE menggunakan shortcut F2 atau tombol yang tersedia pada standart toolbar.

Object Browser VBA Excel

Tentang VBE sudah kita ulas sebelumnya. Jika belum Anda baca bisa Anda pelajari pada halaman berikut: Visual Basic Editor.

Masing-masing jenis member bisa pada object browser diatas bisa Anda kenali dari ikon-ikon yang ada di sebelah nama member terkait. Penjelasan mengenai ikon lain pada object browser ini bisa Anda baca pada halaman Docs Microsoft ini.

Icon Property,Method dan Event Pada Obejct Browser VBE

Mengenai member ini akan kita ulas lebih dalam pada seri berikutnya. Soo silahkan berlangganan artikel kami supaya selalau update ya.

Collection VBA

Saat membuka Object Browser pada VBE jangan heran jika Anda menemukan ada object Worksheet (tanpa "s") dan Worksheets (dengan "s") atau Workbook dan Workbooks.

Selain object yang ada wujudnya, Excel juga mengenal Object yang berbentuk wadah atau koleksi dari object yang sama. Object semacam ini biasa disebut sebagai collection.

Jadi Collection juga merupakan sebuah object yang tujuannya adalah untuk mengelompokkan object-object lain yang memiliki Class yang sama.

Contoh Collection pada VBA Excel yang umum digunakan misalnya:

  1. Workbooks: Koleksi satu atau beberapa workbook yang sedang di buka.
  2. Worksheets: Koleksi satu atau beberapa worksheet sebuah workbook excel.
  3. Charts: Koleksi sekumpulan chart pada sebuah workbook.
  4. Sheets: Kumpulan Worksheet dan juga termasuk Chart pada sebuah workbook.

Hirarki Object VBA

Object-object pada microsoft excel tersusun atas hirarki dari bagian yang lebih besar atau terluar menuju bagian-bagian penyusun yang lebih kecil (lebih dalam) dari semua objek yang dapat Anda gunakan pada pemrograman VBA Excel.

Object terbesar atau terluar dari sebuah aplikasi adalah Application atau aplikasi itu sendiri yang dalam hal ini adalah atau Microsoft Excel sendiri. Meskipun demikian bukan berarti Application merupakan object tertinggi sebab excel sendiri pada dasarnya juga bisa berinteraksi dengan aplikasi yang lain.

Object Model VBA Excel

Object Application (Excel) memuat beberapa object lain misalnya: AddIn, Windows dan Workbooks.

Masing-masing object ini dapat memuat juga beberapa object lainnya. Misalnya pada object Workbook dapat memuat object:

  • Charts yang berisi object-object chart
  • Names yang berisi nama-nama object
  • VBProjects yang mewakili project pada workbook yang sedang terbuka.
  • Windows yang pada level ini memuat object Window pada sebuah workbook tertentu.
  • Worksheets yang memuat object Worksheet.

Selanjutnya sebuah object worksheet dapat memuat object lain, misalnya:

  • Comment: memuat komentar cell.
  • Hyperlink: memuat hyperlink
  • Name: Memuat nama range atau defined name.
  • PageSetup: Memuat informasi pengaturan halaman print.
  • PivotTables: Memuat object PivotTable.
  • Range: Memuat cells, rows, columns, selections dan lain-lain.

Hiraraki diatas tentu saja hanya sekedar contoh, faktanya cukup banyak object-object lain yang salahsatunya bisa Anda pelajari pada halaman microsoft berikut: Object Model.

Memahami alur hirarki object ini cukup penting sebab hirarki ini akan menentukan bagaimana kode vba kita susun untuk menggunakan setiap object yang kita perlukan sehingga tidak salah alamat.

Misalnya bagaimana memanipulasi cell A1 untuk kita isi teks "Belajar VBA" pada sheet1, jangan sampai akhirnya malah kesasar muncul di Cell A1 pada Sheet2. Juga bagaimana jika kita bermaksud memasukkan teks "Kelas Excel" pada cell A1 pada worksheet manapun yang sedang aktif.

Lalu bagaimana cara menggunakan object-object VBA excel ini?

Cara Menggunakan Object VBA Excel

Memahami cara merujuk sebuah object saat menyusun kode VBA Excel sangatlah penting. Sebab bagaimanapun saat menulis kode VBA Excel, Anda harus mamapu mengidentifikasi setiap object yang akan dimanipulasi atau digunakan.

Seperti yang dijelaskan sebelumnya bahwa object memiliki hirarki dari terluar sampai terdalam sesuai daftar member dan peta object tersebut.

Setiap penggunaan property atau methods dari object yang akan dipakai selalu diawali dengan menyebut nama object terluar menuju object terdalam atau lebih kecil sampai tiba pada property atau methods yang dibutuhkan. Untuk menghubungkan masing-masing object tersebut menggunakan tanda titik.

Sintaksisnya seperti berikut:

ObjectTerluar.Object1.Object12.Object123.ObjectLainnya.(property/methods)

Misal untuk sampai pada methods Activate pada object Range Anda membutuhkan untuk mengakses kode berikut:

Application.Workbooks.Worksheets.Range.Activate

Dimana Application adalah object terluar excel kemudian Workbooks adalah object didalam Application dan seterusnya sampai pada methode Activate yang dimiliki oleh Range.

Karakter titik atau dot(.) pada penulisan kode diatas merupakan kode untuk menghubungkan antar object satu dengan object lain pada hirarki di bawahnya.

Jangan tergesa-gesa dulu. kalau benar-benar Anda tulis kode diatas hasilnya adalah sebuah error. Kode di atas sebatas kerangka dasar saja untuk membantu memahami bagaimana cara merujuk pada sebuah object VBA Excel.

Referensi Pada Collection Object

Kemungkinan besar saat membuat atau menulis kode VBA Anda akan sering bersentuhan dengan collection.

Selain membuat referensi pada sebuah object collection secara utuh Anda juga dapat memilih merujuk pada sebagian isi pada collection. Setidaknya Anda dapat melakukannya dengan 2 cara: Menggunakan nama objek atau nomor indexnya pada collection.

Menggunakan Nama Object

Untuk mengakses Collection dengan nama object sitaksisnya adalah sebagai berikut:

NamaCollections(Nama_Object)
  1. Tulis Nama Collection diikuti dengan tanda kurung ()
  2. Nama Object dituliskan didalam Tanda kurung dengan di apit tanda petik.

Contohnya pada sebuah workbook dengan nama "Laporan.xlsm" terdapat 3 worksheet dengan nama Sheet1, Sheet2 dan Sheet3. Untuk menggunakan method Activate pada sheet 2 codenya adalah:

Application.Workbooks("Laporan.xlsm").Worksheets("Sheet2").Activate

atau

Application.Workbooks("Laporan.xlsm").Sheets("Sheet2").Activate

Maksud kode diatas adalah mengaktifkan Sheet2 pada file Laporan.xlsm yang sedang terbuka.

Menggunakan Nomor Index Object

Selain menggunakan nama object, Anda dapat juga mengakses Collection dengan nomor indexnya. Sintaksisnya adalah sebagai berikut:

NamaCollections(NO_Index_Object)
  1. Tulis Nama Collection diikuti dengan tanda kurung ()
  2. Nomor Index dituliskan didalam Tanda kurung tanpa tanda petik.

Dengan nomor Index, untuk contoh sebelumnya bisa Anda gunakan kode berikut:

Application.Workbooks("Laporan.xlsm").Worksheets(2).Activate

atau

Application.Workbooks("Laporan.xlsm").Sheets(2).Activate

Menyederhanakan Penulisan Referensi Pada Object

Jika sebuah referensi pada object ditulis sepenuhnya seperti cara di atas, tentunya kode VBA yang kita tulis akan sangat panjang. Selain memperlambat penulisan kode kemungkinan model semacam itu juga malah akan mempersulit kita saat membaca kode. Meskipun dalam kasus tertentu boleh jadi malah sebaliknya.

Untuk itu ada beberapa cara untuk menyederhanakan kode penulisan atau membuat referensi pada sebuah object VBA Excel.

Konsep sederhanya adalah bahwa jika sebuah referensi object tidak ditulis secara utuh dari object yang paling luar, maka VBA akan mengasumsikan Anda bermaksud merujuk pada object-object yang sedang aktif.

Object Application

Saat bekerja dengan excel maka object defaultnya adalah Application. Kemungkinan besar yang Anda maksudkan disini adalah excel itu sendiri sehingga Anda tidak perlu mereferensikan object Application.

Untuk menyederhanakan penulisan kode sebelumnya Anda bisa tidak menyertakan Application. Cukup ditulis sebagai berikut:

Workbooks("Laporan.xlsm").Worksheets("Sheet2").Activate

The Active Workbook and Worksheet

Jika Anda sedang menulis kode VBA Excel pada standart module maka secara default VBA akan menganggap object luar yang Anda tuju adalah workbook yang sedang aktif. Sehingga kode sebelumnya bisa Anda sederhanakan menjadi:

Worksheets("Sheet2").Activate

Jika Anda bermaksud merujuk pada workbook lain tentu harus ditulis lebih lengkap.

Begitu pula jika Anda bermaksud bekerja dengan sebuah object Range. Jika ditulis secara sederhana maka VBA secara default menganggap yang Anda tuju adalah range pada worksheet yang aktif, misalnya:

Range("A1") = "Kelas Excel"

Kode ini jika dijalankan akan mengisi cell/range A1 pada worksheet yang aktif dengan teks "Kelas Excel".

Model penyederhanaan ini tentu Ada resikonya, yakni terjadinya salah alamat saat kode dijalankan. Untuk itu Anda harus benar-benar jeli dalam peulisan kode VBA.

Selain itu, penyederhanaan diatas hanya berlaku pada module Standart. Jika Anda menuliskan kode pada module Sheet atau Workbook maka VBA secara default selalu menganggap Anda sedang menargetkan worksheet atau workbook dimana kode tersebut ditulis.

Cara lain untuk menyederhanakan penulisan kode VBA adalah dengan menggunakan kode blok perintah With... End With yang akan dijelaskan lain waktu.

Untuk seri tutorial VBA tentang Object kali ini saya kira cukup sampai disini dulu. Jika Masih ada pertanyaan silahkan disampaikan melalui kolom komentar yang tersedia.

Sampai jumpa pada seri berikutnya dan silahkan dibookmark serta jangan ragu untuk klik share supaya lebih banyak kawan-kawan Anda yang ikut mendapatkan manfaatnya.

Selamat belajar.
Salam Kelas Excel.

LANGGANAN GRATIS!

Dapatkan update tutorial excel gratis langsung ke email anda.