Event dalam Macro VBA Excel
Mengingat bahwa aplikasi Excel terdiri dari objek-objek seperti workbook, worksheet, sel, grafik, pivot table, dan seterusnya, maka suatu event adalah sesuatu yang terjadi pada suatu objek yang mana komputer dapat mengenalinya sehingga mampu menghasilkan langkah atau tindakan secara tepat.
Semua yang Anda lakukan di dalam Excel adalah cara Anda meminta suatu event atau kejadian terhadap suatu objek agar dapat terjadi, seperti contohnya ketika Anda ingin menambahkan sebuah sheet, atau Anda ingin mengganti nilai dalam suatu sel, atau Anda melakukan klik-kanan terhadap suatu sel, dan kejadian-kejadian lainnya.
Dengan kemampuan pemrograman event dalam VBA, Anda dapat membuka jalan untuk Excel agar mengenali kapan suatu kejadian tersebut dapat terjadi dan seperti apa jenis kejadiannya.
Cara Menghidupkan dan Mematikan Event
Objek Application memiliki properti bernama EnableEvents yang dengan sendirinya sudah dalam keadaan hidup di Excel, namun dalam beberapa kasus Anda mungkin ingin mematikannya sementara dalam kode prosedur event, dan menghidupkannya kembali sebelum prosedur diakhiri.
Alasannya adalah beberapa event bisa tercetus dengan sendirinya dan jika itu terjadi maka akibatnya dapat membuat suatu loop yang tanpa akhir.
Sebagai contoh, Anda ingin memantau data yang dimasukkan ke dalam suatu sel dan hanya angka saja yang dapat dimasukkan, tapi ada masukan berupa non-angka yang coba dimasukkan, maka Anda bisa menggunakan event Worksheet_Change untuk mengulang keadaan sebelumnya agar masukan yang salah dapat dihilangkan dari konten sel, yang mama akan mencetuskan rentetan lainnya dengan prosedur event yang sama dan sedang berjalan yaitu Worksheet_Change.
Oleh karena itu, untuk dapat menghindari hal tersebut, kode yang bersangkutan harus diapit oleh statement yang dapat mematikan dan menghidupkan kembali event, seperti contoh sintaks yang ditunjukkan berikut:
'Kode Anda yang berguna secara langsung
Application.EnableEvents = True
Selalu ingat bahwa objek Application ini meliputi keseluruhan Excel.
Sebagai contoh, di saat anda menjalankan macro dengan properti EnableEvents dari objek Application dalam keadaan False, maka EnableEvents dalam keadaan dimatikan bagi semua workbook yang sedang membuka, ini artinya bukan hanya workbook yang sedang menjalankan kode VBA saja.
Apapun properti dari objek Application ini yang ingin Anda ubah sementara, yang terpenting adalah selalu me-reset kembali properti tersebut sesuai dengan keadaan pengaturan semula atau keadaan aslinya sebelum Anda menghentikan macro atau prosedur Anda.
Itulah sedikit penjelasan tentang event dalam Macro VBA Excel, semoga bermanfaat.
