런타임에 추가되는 많은 수의 확인란이있는 Excel 형식이 있습니다. 값이 변경 될 때 실행되는 해당 확인란 각각에 처리기를 추가하고 싶습니다. 다른 버전의 Visual Basic에서는 AddHandler를 사용하지만 Excel VBA에서는 작동하지 않는다는 것을 알고 있습니다.양식의 모든 확인란에 Excel VBA 추가 처리자
'This is in a class module called CheckboxHandler
Public WithEvents cb As MSForms.CheckBox
Private Sub cb_change()
MsgBox ("test")
end sub
그리고, 내 사용자 정의 폼에서,이 코드가 : 가능한 한 빨리
With CreateObject("Scripting.Dictionary")
.....'Unrelated code omitted
'Variable Checkboxes
'Add Handler to checkboxes
Dim colCBHandlers As Collection
Set colCBHandlers = New Collection
Dim objHandler As CheckboxHandler
Dim i As Long
Dim chkBox As MSForms.CheckBox
For i = 1 To .count - 1
Set chkBox = Me.Controls.Add("Forms.Checkbox.1", "Checkbox" & i)
chkBox.Caption = .Keys()(i)
chkBox.VALUE = False
chkBox.Top = (chkBox.Height + 10) * (i - 1) + 55
chkBox.Left = 725
Set objHandler = New CheckboxHandler
Set objHandler.cb = chkBox
colCBHandlers.Add objHandler
Next i
End With
부적절한 질문입니까? 나는 downvoting에 대해 혼란스러워. – ale10ander