Mengenal Object Model Pada VBA Excel #10
Object VBA Excel - Artikel ini adalah seri ke-10 yg membahas tentang Macro VBA Excel. Sebelum melanjutkan membaca sebaiknya Anda sdh selesai mempelajari 9 tutorial VBA Excel sebelumnya yg bisa Anda temukan pada halaman brkut: Seri tutorial VBA Excel.
Pada seri ini akan membahas mengenai Object VBA Excel.
Tentang Object Oriented Progamming (OOP)
Perlu Anda tahu bahwa VBA Excel adalah bahasa pemrograman yg berorientasi pada object (Object Oriented Programming) atau disingkat OOP. Bagi yg sdh terbiasa dengan pemrograman saya yakin istilah OOP ini sdh tidak asing lagi.
Untuk yg masih awam barang kali akan bertanya "Apa yg dimaksud dengan pemrograman berorientasi object?"
OOP (Object Oriented Programming) atau pemrograman berorientasikan objek (PBO) adalah suatu metode pemrograman yg berorientasi kpda objek. Tujuan a&ya OOP adalah untuk mempermudah developer dlm mengembangkan sebuah program atau aplikasi dengan cara mengikuti model yg tlah ada dlm kehidupan sehari-hari.
Dalam kehidupan sehari-hari, Anda dapat membaygkan objek adalah sebuah benda dengan fungsi tertentu. Handphone sbgai alat komunikasi misalnya. Sebuah objek dapat tersusun atas beberapa objek lain yg lebih kecil. Pada contoh Handphone misalnya terbuat atas keypad, monitor, baterai, casing, & piranti piranti kecil lainnya yg masing-masing tentunya juga memiliki bagian-bagian penyusun lainnya.
Mengenai OOP (Object Oriented Programming) ini slahkan Anda mencari informasi lebih lanjut di Google.
Microsoft Excel Object
Object pada Excel adalah Sebuah bentuk benda pada aplikasi excel yg berisi sekumpulan data dan mencerminkan sesuatu & kemampuan melakukan sesuatu atau merespon perlakuan terhadapnya sbgai satu kesatuan.
Bentuk Object Excel yg sering akan digunakan misalnya workbook, worksheet, range, cell, chart & lain sbgainya.
Member Object
Masing-masing objek pada VBA Excel umumnya memiliki ciri, potensi & respon-respon tertentu dimana satu & lainnya saling terkait.
Komponen sebuah object ini disebut sbgai 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 yg 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 yg dipicu saat sebuah event, peristiwa atau aktifitas tertentu terjadi pada object.
Sebuah worksheet misalnya memiliki:
- Property: Name, Columns, Rows, Range, Cells, Comments, PageSetup, AutoFilter & lain sbgainya.
- Methods: Activate, Calculate, Copy, Paste, PasteSpecial, Delete, Move, PrintOut, PrintPreview, Protect, dll.
- Events: Activate, BeforeDelete, BeforeDoubleClick, Change, Deactivate, SelectionChange, dll.
Anda dengan mudah dapat mengetahui setiap object & member-membernya dengan membuka Object browser pada VBE menggunakan shortcut F2 atau tombol yg tersedia pada standart toolbar.
Tentang VBE sdh kita ulas sebelumnya. Jika belum Anda baca bisa Anda pelajari pada halaman brkut: Visual Basic Editor.
Masing-masing jenis member bisa pada object browser diatas bisa Anda kenali dari ikon-ikon yg ada di sebelah nama member terkait. Penjelasan mengenai ikon lain pada object browser ini bisa Anda baca pada halaman Docs Microsoft ini.
Collection VBA
Saat membuka Object Browser pada VBE jangan heran jika Anda menemukan ada object Worksheet (tanpa "s") & Worksheets (dengan "s") atau Workbook & Workbooks.
Selain object yg ada wujudnya, Excel juga mengenal Object yg berbentuk wadah atau koleksi dari object yg sama. Object semacam ini biasa disebut sbgai collection.
Jadi Collection juga adalah sebuah object yg tujuannya adalah untuk mengelompokkan object-object lain yg memiliki Class yg sama.
Contoh Collection pada VBA Excel yg umum digunakan misalnya:
- Workbooks: Koleksi satu atau beberapa workbook yg se&g di buka.
- Worksheets: Koleksi satu atau beberapa worksheet sebuah workbook excel.
- Charts: Koleksi sekumpulan chart pada sebuah workbook.
- Sheets: Kumpulan Worksheet & juga termasuk Chart pada sebuah workbook.
Hirarki Object VBA
Object-object pada microsoft excel tersusun atas hirarki dari bagian yg lebih besar atau terluar menuju bagian-bagian penyusun yg lebih kecil (lebih dlm) dari semua objek yg dapat Anda gunakan pada pemrograman VBA Excel.
Object terbesar atau terluar dari sebuah aplikasi adalah Application atau aplikasi itu sendiri yg dlm hal ini adalah atau Microsoft Excel sendiri. Meskipun demikian bukan berarti Application adalah object tertinggi sebab excel sendiri pada dasarnya juga bisa berinteraksi dengan aplikasi yg lain.
Object Application (Excel) memuat beberapa object lain misalnya: AddIn, Windows & Workbooks.
Masing-masing object ini dapat memuat juga beberapa object lainnya. Misalnya pada object Workbook dapat memuat object:
- Charts yg berisi object-object chart
- Names yg berisi nama-nama object
- VBProjects yg mewakili project pada workbook yg se&g terbuka.
- Windows yg pada level ini memuat object Window pada sebuah workbook tertentu.
- Worksheets yg 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 & lain-lain.
Hiraraki diatas tentu saja hanya sekedar contoh, faktanya cukup banyak object-object lain yg salahsatunya bisa Anda pelajari pada halaman microsoft brkut: Object Model.
Memahami alur hirarki object ini cukup penting sebab hirarki ini akan menentukan bagaimana kode vba kita susun untuk menggunakan setiap object yg 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 "" pada cell A1 pada worksheet manapun yg se&g 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 yg akan dimanipulasi atau digunakan.
Seperti yg dijelaskan sebelumnya bahwa object memiliki hirarki dari terluar sampai terdlm sesuai daftar member & peta object tersebut.
Setiap penggunaan property atau methods dari object yg akan dipakai selalu diawali dengan menyebut nama object terluar menuju object terdlm atau lebih kecil sampai tiba pada property atau methods yg dibutuhkan. Untuk menghubungkan masing-masing object tersebut menggunakan tanda titik.
Sintaksisnya sprti brkut:
ObjectTerluar.Object1.Object12.Object123.ObjectLainnya.(property/methods)
Misal untuk sampai pada methods Activate pada object Range Anda membutuhkan untuk mengakses kode brkut:
Application.Workbooks.Worksheets.Range.Activate
Dimana Application adalah object terluar excel kemudian Workbooks adalah object didlm Application & seterusnya sampai pada methode Activate yg dimiliki oleh Range.
Karakter titik atau dot(.) pada penulisan kode diatas adalah 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 sbgai brkut:
NamaCollections(Nama_Object)
- Tulis Nama Collection diikuti dengan tanda kurung ()
- Nama Object dituliskan didlm Tanda kurung dengan di apit tanda petik.
Contohnya pada sebuah workbook dengan nama "Laporan.xlsm" terdapat 3 worksheet dengan nama Sheet1, Sheet2 & 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 yg se&g terbuka.
Menggunakan Nomor Index Object
Selain menggunakan nama object, Anda dapat juga mengakses Collection dengan nomor indexnya. Sintaksisnya adalah sbgai brkut:
NamaCollections(NO_Index_Object)
- Tulis Nama Collection diikuti dengan tanda kurung ()
- Nomor Index dituliskan didlm Tanda kurung tanpa tanda petik.
Dengan nomor Index, untuk contoh sebelumnya bisa Anda gunakan kode brkut:
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 sprti cara di atas, tentunya kode VBA yg kita tulis akan sangat panjang. Selain memperlambat penulisan kode kemungkinan model semacam itu juga malah akan mempersulit kita saat membaca kode. Meskipun dlm 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 yg paling luar, maka VBA akan mengasumsikan Anda bermaksud merujuk pada object-object yg se&g aktif.
Object Application
Saat bekerja dengan excel maka object defaultnya adalah Application. Kemungkinan besar yg 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 sbgai brkut:
Workbooks("Laporan.xlsm").Worksheets("Sheet2").Activate
The Active Workbook and Worksheet
Jika Anda se&g menulis kode VBA Excel pada standart module maka secara default VBA akan menganggap object luar yg Anda tuju adalah workbook yg se&g 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 yg Anda tuju adalah range pada worksheet yg aktif, misalnya:
Range("A1") = ""
Kode ini jika dijalankan akan mengisi cell/range A1 pada worksheet yg aktif dengan teks "".
Model penyederhanaan ini tentu Ada resikonya, yakni terjadinya salah alamat saat kode dijalankan. Untuk itu Anda harus benar-benar jeli dlm 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 se&g menargetkan worksheet atau workbook dimana kode tersebut ditulis.
Cara lain untuk menyederhanakan penulisan kode VBA adalah dengan menggunakan kode blok perintah With... End With yg akan dijelaskan lain waktu.
Untuk seri tutorial VBA tentang Object kali ini saya kira cukup sampai disini dulu. Jika Masih ada pertanyaan slahkan disampaikan melalui kolom komentar yg tersedia.
Sampai jumpa pada seri brkutnya & slahkan dibookmark dan jangan ragu untuk klik share supaya lebih banyak kawan-kawan Anda yg ikut mendapatkan manfaatnya.
Selamat belajar.
Salam .
Sumber https://www.kelasexcel.id
Belum ada Komentar untuk "Mengenal Object Model Pada VBA Excel #10"
Posting Komentar