ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 类模块中的Class_Initialize和Class_Terminate有什么作用?

类模块中的Class_Initialize和Class_Terminate有什么作用?

作者:绿色风 分类: 时间:2022-08-17 浏览:140
楼主
水星钓鱼
Q:类模块中的Class_Initialize和Class_Terminate有什么作用?
A:这两个过程分别在类被实例化和类的实例被释放时运行,可以参照Workbook的Open、Close事件,或者窗体UserForm的Initialize、Terminate事件来理解。
根据它们的作用可以用这两个过程来做一些初始化的工作,如给类的属性设置默认值,以及其它的任何操作。
下面举一个例子来说明它们的用法
代码如下:
在类模块“类1”中输入以下代码:
  1. Dim temp
  2. Property Get value() As String
  3.     value = temp
  4. End Property
  5. Property Let value(str As String)
  6.     temp = str
  7. End Property
  8. Private Sub Class_Initialize()
  9.     MsgBox "Hello!你已开始使用类"
  10.     value = "我是默认值"
  11. End Sub
  12. Private Sub Class_Terminate()
  13.     MsgBox "你已退出使用类,88"
  14. End Sub
在工作表、工作簿、或者标准模块输入以下代码:
  1. Sub xyf()
  2.     Dim obj As 类1
  3.     Set obj = New 类1
  4.     MsgBox obj.value
  5.     obj.value = "新的值"
  6.     MsgBox obj.value
  7.     Set obj = Nothing
  8. End Sub
按F8逐行运行xyf中的语句,当运行到Set obj = New 类1时,将初始化类,触发Class_Initialize事件,执行Class_Initialize事件下的代码,当运行到  Set obj = Nothing时,将释放类,触发Class_Terminate事件,运行Class_Terminate下的代码。
2楼
xyh9999
学习
3楼
じ☆潴の︵ゞ
学习了
4楼
qazwer168
真的牛,双手赞成,谢谢了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap