Seperti yang sudah kita tahu, Macro adalah serangkaian perintah atau tindakan yang dapat disimpan. Perintah-perintah ini dibuat dalam bahasa pemrograman yang disebut Visual Basic for Application, disingkat VBA. Bahasa pemrograman dalam VBA adalah bahasa yang berorientasi pada object atau disebut OOP (Object Oriented Programming). Kita harus memahami lebih dulu seperti apa konsep OOP ini, agar bisa memahami kode-kode yang ada di dalamnya.
Dalam konsep OOP, aplikasi Excel dilihat sebagai kumpulan dari object-object. Yang paling jelas kita lihat, tentu saja ada object Workbook (file excel itu sendiri), Worksheet (yaitu lembar kerja yang berisi sel-sel dalam bentuk baris-kolom-grid), Range (yaitu kumpulan sel yang membentuk grid). Contoh object yang lain, misalnya: Font, Chart, Name, Pivot Table, dan seterusnya.
Setiap object memiliki member yang disebut Property, Action, dan Event.
- Property dapat dianalogikan sebagai sifat atau data (atau properti) yang dimiliki oleh sebuah object.
- Action menggambarkan aksi yang bisa dilakukan oleh sebuah object.
- Event adalah respon object atas sebuah kondisi atau aksi.
Agar lebih jelas, berikut akan kita bahas beberapa object yang paling sering dipakai pada Excel dan bagaimana memrogramnya dalam VBA.
Object Property
Kita akan mencoba property pada Object Range. Sesuai dengan namanya, Range adalah object yang berkaitan dengan satu atau sekelompok sel. Sebagai sel Excel, properti yang sering diakses adalah:
| Property | Keterangan |
| Value | Mengakses Nilai yang ada di dalam cell |
| Text | Menghasilkan nilai yang tampak di Cell (String) |
| Count | Menunjukan jumlah Cell yang ada pada Range |
| Row | Menunjukan nomor baris untuk Cell tunggal |
| Column | Menunjukan Nomor kolom untuk Cell tunggal |
| Address | Menampilkan alamat Cell absolut |
| HasFormula | Menghasilkan TRUE jika Cell memiliki rumus, atau FALSE jika cell tidak memiliki rumus |
| Font | Mengakses Font Object dari sebuah cell |
| Interior | Mengakses Interior Object dari sebuah cell (Interior: warna dan border) |
Kita akan mencoba untuk mengakses property Range dengan menggunakan jendela Immediate yang ada di VBE.
- Buka file latihan: 02 Memahami Object di Macro VBA.xlsm (File dapat didownload di bagian bawah tutorial ini).
- Pilih tab Developer, kemudiah tombol Visual Basic.

- Jika tab Developer belum tampil, silahkan akses tutorial di link ini:
Cara Mengaktifkan dan Membuat Macro di Excel dengan Cara Merekam
- Atur layar kerjanya supaya tampak seperti di bawah ini. Sebelah kiri adalah layar Visual Basic, sedangkan dikanan adalah layar Worksheet. Kita akan menulisakan kode untuk merubah beberapa property dari sel di Worksheet (sebelah kanan).

- Pada jendela Immediate, kita masukan perintah-perintah berikut:

- Hasil dari code di atas adalah

Penjelasan untuk kode tersebut adalah sebagai berikut:
Range("A1").Value = "Sales Report 2003"
| Range(“A1”) | merujuk pada object Range, di alamat A1 |
| .Value | mengakses/mengisi properti Value |
| = “Sales Report 2003” | nilai yang dimasukan ke properti Value adalah teks tersebut |
Range("B4").Value = 100000 ‘mengisi Range B4 dengan nilai 100000
Range("A3:B3").Interior.ColorIndex = 36 ‘mengisi properti ColorIndex dengan warna nomor 36
Range("A4:A15").Font.Bold = true ‘mengisi properti Bold menjadi True
Selain mengisi nilai tertentu pada properti sebuah object, jendeal Immediate bisa juga dipakai untuk mengambil isi dari properti. Caranya dengan memasukan ‘tanda-tanya – ?’ di depan perintah yang dimasukan.
Masukan perintah seperti di bawah ini pada jendela immediate
?Range(“A1”).Value
Perintah akan menampilkan isi property Range(“A1”).Value yaitu
Sales Report 2003
Masukan beberapa contoh lain seperti gambar di bawah.

Object Action
Seperti telah dibahas sebelumnya, object Action menggambarkan aksi yang bisa dilakukan oleh sebuah object. Kita akan menggunakan object Range sebagai contoh.
Masukan perintah pada jendela immediate:
Range(“A3:B15”).Select
Select adalah contoh object Action untuk melalukan select pada range/kelompok sel tertentu. Hasilnya sebagai berikut.

Masukan perintah berikutnya:
Range("A3:B15").Copy Destination:=Range("D3")
Copy adalah Action untuk melakukan copy dari suatu Range ke lokasi lain. Destionation adalah parameter untuk action tersebut. Hasilnya adalah sebagai berikut.

Object Event
Event adalah respon dari sebuah object atas kondisi tertentu. Untuk contoh Event, kita ambil dari Object Worksheet. Kita buka lebih dulu layar kode untuk Worksheet.
Ikuti langkah berikut:
- Klik kanan Worksheet, pilih View Code

- Pada layar kode, pilih Worksheet
- Kemudian prosedure Selection Change

- Masukan kode berikut antara Private Sub Worksheet_SelectionChange … dan End Sub

- Penjelasan kode tersebut adalah: Setiap kita melakukan seleksi sel (Event: SelectionChange) pada Worksheet, maka MsgBox akan dipanggil untuk menampilkan Target.Address.

Demikianlah penjelasan singkat tentang object beserta property, action, dan event-nya. Semoga bermanfaat. Sampai jumlah di tutorial macro vba selanjutnya. Chaw.
File latihan: 02 Memahami Object di Macro VBA