下面介绍一个简单的类模块及使用,有兴趣的朋友可以研究,了解类模块的运行原理。
在VBE中,插入一个类模块,将其重命名为“clsCustomtextbox”。在其中输入代码:
代码语言:javascript复制Public WithEvents myBox As MSForms.TextBox
Event DEntered()
Property Get HasD()
HasD = myBox.Text Like "*D"
End Property
Private Sub myBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (Me.HasD) And Chr(KeyAscii) = "D" Then RaiseEvent DEntered
End Sub
然后,插入一个用户窗体,在其中放置一个文本框、一个标签、一个命令按钮,保留其默认名称,如下图1所示。
图1
在该用户窗体代码模块中,输入代码:
代码语言:javascript复制Public WithEvents CustomTextBox As clsCustomtextbox
Private Sub UserForm_Initialize()
Set CustomTextBox = New clsCustomtextbox
Set CustomTextBox.myBox = TextBox1
End Sub
Private Sub CustomTextBox_DEntered()
MsgBox "按下了字母D键"
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
这样,运行该用户窗体,如果在文本框中输入包含字母D的内容时,会弹出一条提示消息“按下了字母D键”,如下图2所示。
图2
这个示例定义了类模块,并创建了自定义事件,然后在代码中初始化类模块并触发自定义的事件,可以仔细体会其运作原理。