一个VBA类模块使用示例

2023-10-18 12:52:49 浏览数 (1)

下面介绍一个简单的类模块及使用,有兴趣的朋友可以研究,了解类模块的运行原理。

在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

这个示例定义了类模块,并创建了自定义事件,然后在代码中初始化类模块并触发自定义的事件,可以仔细体会其运作原理。

0 人点赞