@Androni ...
Berdasarkan pengalaman pribadi, ada beberapa hal yang dapat saya sarankan :
[1]. Kenali dan pahami dahulu struktur bahasa pemrograman VBA. Misalkan saja, pahami apa yang dimaksud variabel, konstanta, tipe variabel, prosedur atau fungsi, lingkup variabel dan lain sebagainya. Sekarang sudah banyak buku-buku mengenai Excel VBA yang ada beredar. Atau cari situs-situs yang membahas dasar-dasar pemrograman dengan VBA. Coba baca diskusi Belajar VBA & macro atau diskusi How To Learn VBA untuk rujukan.
[2]. Excel VBA pada dasarnya merupakan bahasa pemrograman berorientasi objek — meskipun hanya bersifat generik. Jadi, untuk dapat mengakses setiap objek (seperti Workbook, Worksheet, Range dan sebagainya), pahami cara-cara yang sudah ditetapkan. Misalkan saja, perintah berikut :
Set objWorksheet = ThisWorkbook.Worksheets("Sheet1")
merupakan salah satu cara yang dapat kita lakukan untuk menetapkan objek Worksheet
dengan nama tab SHEET1 kepada variabel objWorksheet
. Pada perintah tersebut, ThisWorkbook
merupakan variabel yang sudah ditetapkan (Reserved Variable) yang ditetapkan kepada objek Workbook dimana baris perintah dibuat. Dalam hal ini, ThisWorkbook
merupakan parent object dari objek Worksheet
dengan nama tab SHEET1. Dengan perintah tersebut di atas, variabel objWorksheet
akan memiliki semua properti yang dimiliki oleh objek Worksheet
SHEET1.
[3]. Excel memiliki banyak sekali objek, dimana setiap objek umumnya memiliki member berupa Properties
, Events
dan Function
. Setiap objek, dapat memiliki lebih dari 1 member. Tentu akan sangat sulit untuk mengingat semuanya. Biasanya, saya menggunakan jendela Object Browser (shortcut: F2) pada jendela VBE (VisualBasic Editor) untuk mengetahui member apa saja yang dimiliki oleh objek yang akan saya gunakan. Pada jendela Object Browser, kita dapat melihat objek-objek apa saja yang tersedia dan member apa saja yang dimiliki oleh setiap objek. Misalkan contoh pada poin 2 di atas, ThisWorkbook
merupakan sebuah objek yang memiliki properti di antaranya seperti Name
, Path
dan sebagainya. Pada contoh tersebut, Worksheets
merupakan properti ThisWorkbook
yang berupa (bertipe) sebuah objek. Selain Properties
, adakalanya sebuah objek memiliki member berupa Events
dan Functions
, contohnya :
ThisWorkbook.Close
Pada perintah di atas, Close
merupakan fungsi yang dimiliki oleh objek ThisWorkbook
.
[4]. Excel memiliki fungsi Macro Recorder yang dapat digunakan untuk mencatat rangkaian proses yang kita kerjakan dan mengkonversikannya ke dalam script VBA. Memang tidak semua proses dapat direkam oleh fitur tersebut. Namun, proses kerja yang umum kita gunakan, pada dasarnya dapat direkam oleh fitur tersebut.
Coba rekam proses sederhana dan lihat hasilnya. Contohnya, berikut hasil dari rekaman proses yang saya lakukan :
Sub Macro1()
'
' Macro1 Macro
'
'
Range("A1:C5").Select
Selection.Font.Bold = True
End Sub
Script di atas pada dasarnya akan melakukan proses seleksi terhadap range A1:C5, dan kemudian menebalkan font pada range tersebut. Pada script tersebut, perintah :
Range("A1:C5").Select
akan menghasilkan sebuah objek baru yakni Selection
yang merupakan Reserverd Object. Object Selection
tersebut kemudian digunakan untuk mengaktifkan properti Bold dari objek Font dari setiap sel. Perhatikan objek yang dapat diakses pada object Selection
tersebut :
Range.Font.Bold
Dengan memahami objek yang dapat diakses pada object Selection
tersebut, maka pada dasarnya kita dapat menyederhanakan perintah di atas menjadi :
Sub Macro1()
Range("A1:C5").Font.Bold = True
End Sub
Masih banyak lagi yang bisa dilakukan untuk memulai mempelajari dan mendalami VBA, misalkan dengan mencoba-coba menyelesaikan sendiri permasalahan yang ditanyakan rekan-rekan di forum ini, kemudian membandingkannya dengan solusi yang sudah ada. Prinsipnya, Learning by Doing...
Demikian.