Hirarki Object Model

Visual Basic for Applications (VBA) pada dasarnya adalah pemrograman yang berorientasi object (OOP). Oleh karena itu setiap script vba yang ditulis selalu didasarkan pada object-object yang pada pada vba atau pada aplikasi host atau object yang dibuat sendiri.

Cara ini juga bisa menjadi kunci dalam memahami script VBA dengan cepat, misalnya jika di analogikan, kita memerintahkan burung untuk terbang, maka script VBA akan ditulis seperti ini.

Burung.terbang

Yang ditulis adalah objectnya terlebih dahulu baru setelah itu diikuti property atau method yang dimiliki oleh object tersebut.

Dimna burung adalah object dan terbang adalah method yang dimiliki oleh burung.

contoh lainnya

Burung.sayap(2) = True

Mudah mudah sudah ada gambaran ya.

Hiraki Object pada VBA

Object yang digunakan dalam VBA tentu sangat banyak ditambah dengan object yang ditambahkan oleh aplikasi Host.

Seperti misalnya dibawah ini adalah gambaran kecil dari object yang dimiliki oleh Excel

Objek Application adalah objek tertinggi dalam hirarki. Objek ini mewakili aplikasi Excel secara keseluruhan jika yang digunakan adalah VBA Excel. Jadi Aplication ini adalah Object dari Aplikasi Host dimana VBA berada.

Dengan kata lain Application ini akan berubah menjadi Word jika di Word dan PowerPoint jika dibuka di PowerPoint.

Untuk memudahkan memahami pentingnya hirarki object, misalnya jika kita mau menggunakan cells excel misalnya pada alamat A1. maka notasi scriptnya jika ditulis menggunakan VBA adalah

Application.Workbook("Book1").Sheets("Sheet1").Cells(1, 1).Value
  • Application adalah object dari Aplikasi Excel
  • Workbook("Book1") adalah File atau Workbook “Book1” yang sedang di buka Oleh Excel
  • Sheets("Sheet1") adalah Sheet yang bernama “Sheet1” yang ada pada File “book1”
  • Cells(1,1) adalah cells dengan alamat baris ke 1 dan kolom ke 1 yang berada di Sheets “Sheet1” dan didalam file “Book1”

Seperti itulah contoh penulisan script untuk menggunakan cells A1 dimulai dari object tertinggi hingga ke cells.

Cara penulisan seperti ini tentu agak sedikit merepotkan karena harus menulis panjang dan detail tetapi ini akan lebih baik dan akan terhindar dari kesalahan.

Nilai Default

Nah, Untungnya didalam VBA ada nilai-nilai default yang dimana jika kita tidak menuliskannya atau menyebutkannya maka script tidak akan Error tetapi bagian kosong yang tidak disebutkan tersebut akan diisi dengan nilai default yang sudah ditetapkan.

Sehingga pada kondisi tertentu penulisan script tidak harus direpotkan dengan penulisan yang panjang dan detail.

Misalnya jika kamu akan menggunakan Cells A1, maka script bisa ditulis cukup dengan

Cells(1,1).value

Maka, script diatas itu akan sama artinya dengan

Application.ActiveWorkbook.ActiveSheet.Cells(1, 1).Value
  • Application adalah object dari Aplikasi Excel
  • ActiveWorkbook adalah File atau Workbook yang saat ini sedang Aktif
  • ActiveSheet adalah Sheet yang saat ini sedang aktif
  • Cells(1,1) adalah cells dengan alamat baris ke 1 dan kolom ke 1

Contoh lainnya misalnya :

Range("A1").value = "Excel"

Pada script diatas nama worksheet tidak tertulis pada script artinya, worksheet yang dituju adalah worksheet yang active (ActiveSheet) .

Jadi bisa disimpulkan bahawa Workbook dan Juga worksheet pada script diatas, tidak statis tetapi bisa berubah-ubah tergantung sheet mana yang sedang aktif.

Penulisan script cells(1,1).value tentu sangat memudahan tetapi dibalik itu penulisan seperti akan berakibat menghasilkan kesalahan dimana jika sheet yang aktif adalah bukan sheet yang kita harapkan.

Lalu bagaimana cara terbaiknya?

Pastikan yang dibutuhkan memang Sheet yang aktif. Tetapi jika bukan, cara terbaik untuk mengunakan cells A1 adalah dengan menyebutkan nama worksheetnya. misalnya :

Set wb = Thiswoorkbook
wb.Sheets("Sheet1").Cells(1,1).value
  • ThisWorkbook adalah File atau Workbook yang saat ini sedang digunakan
  • Sheets("Sheet1") adalah Sheet yang bernama “Sheet1”
  • Cells(1,1) adalah cells dengan alamat baris ke 1 dan kolom ke 1

Dengan cara seperti ini, sudah cukup untuk menentukan alamat tujuan dari cells yang dituju, maka tujuan tidak akan salah alamat atau terjadi kesalahan.

List Tutorial
Apa yang sedang kamu cari?

Temukan beberapa kata kunci yang diinginkan.

Search