2024年5月11日发(作者:)
VBA类模块入门
'一、什么是类模块
''类',相同的事物划成的一个类别。象人类,鸟类等。在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)
ndex = 3End Property
Property Set 绿色单元格(rng As Range) ndex = 4End
Property '************日报表类*****************************************Sub 设置模板
工作表类模块方法()Dim shh As New 日报表 '创建一个日报表类的实例Set shh.模板 =
Sheets('sheet2')End Sub
Sub 设置模板工作表调用宏方法() 设置模板 Sheets('sheet2')End SubSub 设置
模板(sh As Worksheet) ('a1:g1').Merge ('a1') = '营业日报表'
('a1').HorizontalAlignment = xlCenter ('d3') = DateEnd Sub‘以
下写在类模块内Property Set 模板(sh As Worksheet) ('a1:g1').Merge
('a1') = '营业日报表' ('a1').HorizontalAlignment = xlCenter
('d3') = DateEnd Property'************调用梯形面积类
************************************Sub 面积之类模块() Dim 梯形 As New 梯形面
积 With 梯形 .上底 = 2 .下底 = 3 .高 = 4MsgBox .面积
MsgBox .高 End WithEnd Sub
Sub 面积之自定义函数() MsgBox mianji(2, 3, 4)End Sub
Function mianji(上底, 下底, 高) mianji = (上底 + 下底) * 高 / 2End Function
‘以下写在类模块内Dim Shangdi, Xiadi, gaoProperty Let 上底(shdi) Shangdi =
shdiEnd Property
Property Let 下底(xdi) Xiadi = xdiEnd Property
Property Let 高(g) gao = gEnd PropertyProperty Get 高() 高 = gaoEnd
Property
Property Get 面积() 面积 = (Shangdi + Xiadi) * gao / 2End Property
'************调用万能计算器类*********************************Sub 计算() Dim 计
算 As New 万能计算器 With 计算 Set .单元格区域 =
Sheets('sheet3').Range('a1:a10') .求和 .平均数 .求个数 End WithEnd
Sub
‘以下写在类模块内Dim rng As RangeProperty Set 单元格区域(rg As Range)
Set rng = rgEnd Property
Sub 求和() '求和:' & (rng)End SubSub 平均数()
'平均数:' & e(rng)End SubSub 求个数()
'个数:' & (rng)End Sub


发布评论