Option
Explicit
Event
OnChange(
ByVal
Control
As
MSForms.Control)
Private
m_colControls
As
VBA.Collection
Friend
Sub
RaiseMyEvent(EventName
As
String
, Control
As
MSForms.Control)
Select
Case
UCase$(EventName)
Case
"ONCHANGE"
:
RaiseEvent
OnChange(Control)
End
Select
End
Sub
Public
Function
MapControls(UserForm
As
MSForms.UserForm)
As
Long
Dim
ctl
As
MSForms.Control
Set
m_colControls =
New
VBA.Collection
For
Each
ctl
In
UserForm.Controls
If
TypeOf
ctl
Is
MSForms.TextBox
Then
Dim
obj
As
MyTextBox
Set
obj =
New
MyTextBox
Call
m_colControls.Add(obj.MapControl(ctl,
Me
))
End
If
Next
MapControls = m_colControls.Count
End
Function
Public
Sub
Dispose()
Set
m_colControls =
Nothing
End
Sub