咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

【分享成果,随喜正能量】 大度能容天下事,宽肠能解世间愁,世间事,除了生死都是小事,过好当下就是最重要的,别去为难自己,别辜负岁月。做人最重要的是修心,把心放宽一点,不要因为小事而计较太多,与其让自己心累,不如大度一点,安安静静的做自己。不管遭遇了什么,都要保持微笑,让阳光照进来,多一份释然放下,多一份包容体谅,多一份善意与感激,你的余生必然会厚福不断。

《VBA中类的解读及应用》教程是我推出第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。

类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是第16讲:高亮显示文本框激活的窗体构建代码

第十六讲 利用类方法和事件,让文本框在激活时改变颜色(中)

(接上讲)

大家好,在上一讲中我们讲了利用类方法和事件,实现让文本框在激活时改变颜色的第一部分代码:类模块的建立。我们今天继续讲解,这讲讲的是窗体的代码。

3 窗体的构建及代码

为了实现上述的目的,我们首先要构建一个窗体,由文本框和按钮组成:

窗体的代码如下:

Dim mytexbox() As New mytebox

Private Sub CommandButton1_Click()

If TextBox2.Text = "" Then

t1 = 0

Else

t1 = TextBox2.Text + 0

End If

If TextBox3.Text = "" Then

T2 = 0

Else

T2 = TextBox3.Text + 0

End If

If TextBox4.Text = "" Then

T3 = 0

Else

T3 = TextBox4.Text + 0

End If

TextBox1.Text = t1 + T2 + T3

End Sub

Private Sub CommandButton2_Click()

For i = 1 To 4

With UserForm7.Controls("TextBox" & i)

.ForeColor = 0 '(黑色)

.BackColor = 16777215 ' (白色)

.Text = ""

End With

Next

End Sub

Private Sub UserForm_Initialize()

For Each myctl In Me.Controls

If TypeName(myctl) <> "CommandButton" And TypeName(myctl) <> "Label" Then

yy = TypeName(myctl)

m = m + 1

ReDim Preserve mytexbox(1 To m)

Set mytexbox(m) = New mytebox '创建一个新的mycdl类对象

Set mytexbox(m).mBOX = myctl '设置关联

End If

Next

End Sub

代码截图:

4 窗体代码的讲解

在上面的语句中有两个按钮的事件,及窗体的构建代码。

1) 窗体的构建函数:

Private Sub UserForm_Initialize()

For Each myctl In Me.Controls

If TypeName(myctl) <> "CommandButton" And TypeName(myctl) <> "Label" Then

yy = TypeName(myctl)

m = m + 1

ReDim Preserve mytexbox(1 To m)

Set mytexbox(m) = New mytebox '创建一个新的mycdl类对象

Set mytexbox(m).mBOX = myctl '设置关联

End If

Next

End Sub

上述代码中我们先对每一个控件进行循环,如果是文本框控件,那么将这个文本框定义为新的类并设置类与mBOX 类事件对象的关联。以便让文本框响应我们需要的动作。

2)“求和”按钮是把后三个的文本框值相加。

3) “重置”按钮是清空文本框内容,包括颜色设置地复位。

今日内容回向:

1 在窗体的构建中要解决什么问题?

2 如何让窗体的实际对象响应已经定义了类事件的对象?

本讲内容参考程序文件:VBA-CLASS(1-28).xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:

① 7→1→3→2→6→5或者7→4→3→2→6→5。

② 7→8

各套教程内容简介:

第7套教程(共三册):《VBA之EXCEL应用》:是对VBA基本的讲解

第1套教程(共三册):《VBA代码解决方案》:是入门后的提高教程

第4套教程(16G):VBA代码解决方案之视频(第一套的视频讲解)

第3套教程(共两册):《VBA数组与字典解决方案》:是对数组和字典的专题讲解

第2套教程(共两册):《VBA数据库解决方案》:是对数据库的专题讲解

第6套教程(共两册):《VBA信息获取与处理》:讲解VBA的网络及跨程序应用

第5套教程(共两册):VBA中类的解读和利用:类及接口技术的讲解

第8套教程(共三册):VBA之Word应用(最新教程):word中VBA的利用