AW: Code verkürzen?
05.03.2015 09:49:05
Nepumuk
Hallo,
füge in dein Projekt ein neues Klassenmodul ein (Menüleiste - Einfügen - Klassenmodul). Ändere den Namen des Klassenmodul im Eigenschaftsfenster von Klasse1 zu clsCheckBox. In dieses Klassenmodul kommt folgender Code:
' **********************************************************************
' Modul: clsCheckBox Typ: Klassenmodul
' **********************************************************************
Option Explicit
Private WithEvents mchkBox As MSForms.CheckBox
Private Sub Class_Terminate()
Set CheckBox = Nothing
End Sub
Friend Property Get CheckBox() As MSForms.CheckBox
CheckBox = mchkBox
End Property
Friend Property Set CheckBox(ByRef prchkBox As MSForms.CheckBox)
Set mchkBox = prchkBox
End Property
Private Sub mchkBox_Click()
mchkBox.Visible = Not mchkBox.Value
End Sub
In das Modul des UserForms kommt folgender Code:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************
Option Explicit
Private colCheckBoxClass As Collection
Private Sub UserForm_Activate()
Dim objCheckboxClass As clsCheckBox
Dim lngIndex As Long
Set colCheckBoxClass = New Collection
For lngIndex = 2 To 49
Set objCheckboxClass = New clsCheckBox
Set objCheckboxClass.CheckBox = Controls("CheckBox" & CStr(lngIndex))
colCheckBoxClass.Add objCheckboxClass
Next
Set objCheckboxClass = Nothing
End Sub
Private Sub UserForm_Terminate()
Set colCheckBoxClass = Nothing
End Sub
Gruß
Nepumuk