Pada postingan sebelumnya yaitu Cara Menggunakan Class Module untuk Sejumlah Tombol ActiveX Macro VBA Excel, digunakan kata kunci Collection untuk mengelompokkan jenis objek yang sama ke dalam suatu class.

Tip berikut ini menunjukkan sebuah contoh Sheet1 yang memiliki sejumlah alat kontrol kotak centang atau CheckBox yang tertempel (ActiveX), dan misi Anda hanya menuliskan beberapa baris kode VBA yang nantinya akan diberlakukan pada seluruh CheckBox yang ada dalam sheet tersebut.

Anda bisa menambahkan efek visual yang Anda inginkan agar diwarnai pada saat kotak diberi tanda centang atau jika tanda centang itu dihilangkan.

Warna-warna tersebut dihasilkan dari kode hex dengan properti BackColor sebagai acuan warna seperti pada tombol yang telah dijelaskan pada postingan sebelumnya dan juga properti ForeColor seperti yang digunakan dalam kode dibawah ini.

Adapun kode yang Anda tuliskan juga sangatlah minim, silakan buat class module baru dengan nama Class1:

Public WithEvents tw As MSForms.CheckBox
Private Sub tw_Click()
With tw
If .Value = True Then
.BackColor = &H0&
.ForeColor = &HFFFFFF
Else
.BackColor = &HFFFFFF
.ForeColor = &H0&
End If
End With
End Sub

Sisanya dituliskan pada module ThisWorkbook, objek tw difungsikan melalui kode berikut dan dilakukan proses refresh setiap kali workbook dibuka dengan menggunakan event Workbook_Open:

Public kdl As Collection
Private Sub Workbook_Open()
Dim kdlole As OLEObject, k As Class1
Set kdl = New Collection
For Each kdlole In Worksheets("Sheet1").OLEObjects
If TypeOf kdlole.Object Is MSForms.CheckBox Then
Set k = New Class1
Set k.tw = kdlole.Object
kdl.Add k
End If
Next
End Sub

Itulah penjelasan cara menggunakan Class Module untuk sejumlah kotak centang CheckBox ActiveX Macro VBA Excel.

Semoga bermanfaat.