'一、什么是类模块
''类',相同的事物划成的一个类别。象人类,鸟类等。在VBA中可以创建类的模块就是类模块。
'二、类模块有什么作用?
'类就象一个设计好的模板,它生产的产品大小、形状,它所具体的功能已设置完成,当需要
'这类产品时,我们只需要把材料放进模板,就可以马上生产出一个和模板有相同特征、功能的产品。
'对于同类的产品可以通过循环批量操作,不必一个个的设置。具体的作用有以下几方面:
'1 让代码可读性更强
'2 调用excel对象的一些事件,如程序级事件,内嵌图表事件,菜单命令事件等.
'3 封装API,让代码更简捷易懂
'4 创建控件数组.
'5 团队协作时,编写完整模块后可以方便队友调用,减少开发时间
'三、怎么创建类模块
'插入菜单(或在工程窗口右键--插入)--类模块。
'四、类模块相关语句
'1 property let
'作用:生成对象的可写入属性
Property Let 属性名称(参数)
Xiadi = xdi
End Property
'2 property Get()
'作用,生成对象的可读取属性
Property Get 属性名称()
End Property
'3 Property Set
'作用:生成子对象
Property Set 子对象名称(对象)
End Property
'4 Sub语句
'作用:生成方法
'5 Function语句
'使用类,首先要创建一个新的实例。即
'dim 变量 as new 类模块名称
'创建后,就可以使用该类的对象、方法和属性了
'************调用MyRng类**************************************
Sub 设置单元格()
Dim rggg As New MyRng
Set rggg.红色单元格 = Range('B5')
Set rggg.绿色单元格 = Range('B6')
End Sub
‘以下写在类模块内
Property Set 红色单元格(rng As Range)
rng.Interior.ColorIndex = 3
End Property
Property Set 绿色单元格(rng As Range)
rng.Interior.ColorIndex = 4
End Property
'************日报表类*****************************************
Sub 设置模板工作表类模块方法()
Dim shh As New 日报表 '创建一个日报表类的实例
Set shh.模板 = Sheets('sheet2')
End Sub
Sub 设置模板工作表调用宏方法()
设置模板 Sheets('sheet2')
End Sub
Sub 设置模板(sh As Worksheet)
sh.Range('a1:g1').Merge
sh.Range('a1') = '营业日报表'
sh.Range('a1').HorizontalAlignment = xlCenter
sh.Range('d3') = Date
End Sub
‘以下写在类模块内
Property Set 模板(sh As Worksheet)
sh.Range('a1:g1').Merge
sh.Range('a1') = '营业日报表'
sh.Range('a1').HorizontalAlignment = xlCenter
sh.Range('d3') = Date
End Property
'************调用梯形面积类************************************
Sub 面积之类模块()
Dim 梯形 As New 梯形面积
With 梯形
.上底 = 2
.下底 = 3
.高 = 4
MsgBox .面积
MsgBox .高
End With
End Sub
Sub 面积之自定义函数()
MsgBox mianji(2, 3, 4)
End Sub
Function mianji(上底, 下底, 高)
mianji = (上底 + 下底) * 高 / 2
End Function
‘以下写在类模块内
Dim Shangdi, Xiadi, gao
Property Let 上底(shdi)
Shangdi = shdi
End Property
Property Let 下底(xdi)
Xiadi = xdi
End Property
Property Let 高(g)
gao = g
End Property
Property Get 高()
高 = gao
End Property
Property Get 面积()
面积 = (Shangdi + Xiadi) * gao / 2
End Property
'************调用万能计算器类*********************************
Sub 计算()
Dim 计算 As New 万能计算器
With 计算
Set .单元格区域 = Sheets('sheet3').Range('a1:a10')
.求和
.平均数
.求个数
End With
End Sub
‘以下写在类模块内
Dim rng As Range
Property Set 单元格区域(rg As Range)
Set rng = rg
End Property
Sub 求和()
Debug.Print '求和:' & Application.Sum(rng)
End Sub
Sub 平均数()
Debug.Print '平均数:' & Application.Average(rng)
End Sub
Sub 求个数()
Debug.Print '个数:' & Application.CountA(rng)
End Sub
联系客服