《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。
类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)
【分享成果,随喜正能量】身心是我们修行的代表,你是不是真修行,修得怎么样,一看你的相、看你的身体就知道了。你的功夫就在你脸上、就在你行为上,你怎么能骗人?
念佛的人,功夫从从相貌上看,从体质上看。真正修行的人念佛功夫得力,相貌就改变了,身体就强壮了!确实,我们的相貌会随着我们修行的功夫转变。
你一天念几万声佛号,每天读几部经,你的心地清净慈悲,没有恶念,你的相貌自然就会变成慈祥,你功夫愈深,相貌也愈好。你这修行功夫骗不了人,一看就晓得。。
第十五讲 利用类方法和事件,让文本框在激活时改变颜色(上)
大家好,今天继续讲解类的方法和事件。到这一讲,我们基本已经了解了如何利用类,如何利用类的事件。
如果想利用类,必须在类模块中建立类,类的名称是可以改为自己需要的名称;建立类后还要实例化类,把类转化为一个实体对象,如果不对类进行实例化,是没有任何意义的;一般情况下,可以在窗体的构建中进行类的实例化;如果要让这个实体对象响应类的事件,那么要在类的声明中进行对象的声明,在类模块中进行事件的响应,在窗体模块中进行对象的必要关联。
下面仍是以实例为基础,进行类模块实际问题的讲解。
实例:在窗体中,让每一个文本框在激活时发生颜色的改变。
思路的分析:让窗体中的文本框关联上同一个类,可以执行统一的类事件。在窗体中把必要的文本框和这个类及将执行响应的类事件进行关联。
在这讲及其后的几讲中,我们讲解上述需求的实现过程:
1 搭建类模块及类事件
我们建立一个类模块mytebox,并在类模块中声明一个响应事件的对象Mbox,作为我们要干预文本框的一个对象集合。
Public WithEvents mBOX As MSForms.TextBox
Private Sub mBOX_Change()
m = mBOX.Text
If m = "" Then m = 0
If m > 100 Then
MsgBox ("已经超过100"): DoEvents
End If
End Sub
Private Sub mBox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
For i = 2 To 4
With UserForm7.Controls("TextBox" & i)
.ForeColor = 0 '(黑色)
.BackColor = 16777215 ' (白色)
TT = .Text
End With
Next
mBOX.BackColor = 16711680 ' (蓝色)
mBOX.ForeColor = 16777215 '白色
End Sub
代码截图:
2 代码的讲解及窗体初始化效果
1) 在上述代码中Public WithEvents mBOX As MSForms.TextBox是对要响应类对象事件的对象进行了声明。
2) 上面的对象共有两个事件,其一是mBOX_Change其二是mBox_MouseDown。
3) 我们先看第一个事件mBOX_Change。当对象发生改变时,将执行下面的操作:
m = mBOX.Text
If m = "" Then m = 0
If m > 100 Then
MsgBox ("已经超过100"): DoEvents
首先要把mBOX.Text的值提取出来,进行判断,如果是空值按0处理,如果是大于100将进行提示:已经超过100.
4) mBox_MouseDown过程。
For i = 2 To 4
With UserForm7.Controls("TextBox" & i)
.ForeColor = 0 '(黑色)
.BackColor = 16777215 ' (白色)
TT = .Text
End With
Next
mBOX.BackColor = 16711680 ' (蓝色)
mBOX.ForeColor = 16777215 '白色
对于textbox的第2到第4个,首先把每个文本框进行初始化,然后对于激活状态的文本框进行着色设置。背景为蓝色,前景为白色。
运行初始化时的窗体的界面:
今日内容回向:
1 类的事件是如何被对象响应的?
2 类事件被声明后,如何才能应用?
(待续)
本讲内容参考程序文件:VBA-CLASS(1-28).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: