Seperti yang pernah dibahas pada Materi Worksheets, Events adalah peristiwa yang terjadi saat pengguna atau sistem melakukan tindakan tertentu terhadap objek, seperti mengklik tombol, memasukkan data ke dalam sel, atau menutup Form.
Setiap objek VBA memiliki serangkaian Events yang dapat dipicu, tergantung pada jenis objeknya. Misalnya, Userform dapat memiliki Events seperti Click
, Change
, Load
, dan Unload
, sedangkan objek Sheet dalam Excel dapat memiliki Events seperti Change
, SelectionChange
, dan BeforeDoubleClick
, dan sebagainya.
Dengan menggunakan Events, kamu dapat membuat kode yang merespons secara otomatis terhadap tindakan yang dilakukan pengguna atau sistem terhadap objek tersebut. Kamu dapat menetapkan prosedur atau fungsi VBA tertentu ke Events tertentu, sehingga ketika Events tersebut terpicu, kode yang relevan akan dieksekusi.
Proses pembuatan Events ini biasanya terjadi ketika kita mau menentukan sebuah Events terhadap Object yang dibuat saat runtime sehingga tidak mungkin kita menentukan dan memilih Events nya dari list Events karena Objectnya sendiri belum tercipta.
Atau pembuatan Events ini juga terjadi ketika menggunakan banyak control yang sama dengan Events yang sama dan kita ingin Events nya dibuat sekali saja. Sehingga satu events ini bisa gunkan oleh beberapa object.
Untuk membuat sebuah events, pada Class Module kita bisa menggunakan fungsi WithEvents.
WithEvents
digunakan untuk membuat koneksi antara objek dan objek event-handler, sehingga memungkinkan kita untuk menangani Events yang dihasilkan oleh objek tersebut.
Berikut adalah tutorial singkat tentang cara menggunakan WithEvents
dalam VBA:
Public WithEvents myForm As UserForm1
Misalnya pada contoh dibawah ini membuat Events Click
Private Sub myForm_Click() ' Kode untuk menangani peristiwa klik pada formulir. End Sub
Set myForm = New NamaClass
Jika menggunakan banyak object sekaligus dan ingin menggunakan events yang sama, setiap object bisa disimpan dalam sebuah array collection