VBA小白入门之:类模块 您所在的位置:网站首页 vba类模块和模块的区别 VBA小白入门之:类模块

VBA小白入门之:类模块

#VBA小白入门之:类模块| 来源: 网络整理| 查看: 265

一、大致解释一下什么是类、对象

有一些计算机常识的,都应该知道什么叫类(Class)或者对象(Object)。一个对象,可以有属性、方法。举个白痴但是通俗的例子:人作为一种对象,有上着、下着这两个可读可写的属性,以及穿着好看不好看这个只读的属性,还有走路、跑步这两种方法。属性返回的是一个值,方法返回值不能表达的东西。

再举一个Excel里的例子:A1单元格,有字体、字号、边框样式……这些可读可写的属性,还有所在位置、所属Sheet、……这些只读的属性,还有清除其中内容、将其中的字母全变大字、……这些方法。

类有一个特点,凡是同属于这个类的对象,其属性、方法的类目(如上面说的字号、边框样式,而不是说14号字、粗边框这种具体的)都是相同的。也就是说,定义好了一个类,赋与不同的属性,就能搞出许多对象。

比如,造出一个叫“地名”的类,令其属性“地图”为陕西的行政区划,则问它“灞桥”,它就能返回“陕西省-西安市-灞桥区”。创建若干个同属地名这个类的对象,扔进去不同省的,问它地名,它就能告诉你相应省内地区的行政归属。

总地来说,这东西和函数稍有类似,能够按照既定的模式,在给定的参数下,做出不同却相似的效果。

二、VBA的类模式怎么玩 1 创建一个类 打开Excel中的开发工具-查看代码: 如图新建一个类: 给这个类起个名字: 赋予它属性,定义好内部存储这些属性的变量: 赋予它属性,告诉VBA怎么写入(Let)、读取(Get)属性(Property)。注意,如果正在写入的这个属性和其他属性是关联的,则在这时即可对这个关联的属性赋值,如图中的“受到未成年保护”这个属性: 如果所赋值不是变量,而是对象,则需要改用Set替代Let

这里需要注意,属性在赋值时指定(Let)成了什么数据类型(Property Let 年龄(x as Integer)中的Integer),在获取(Get)该属性的代码(Property Get 年龄() As Integer)中,应该令返回值为这种数据类型(As Integer)。

告诉它怎么“动”(即赋与一种方法),比如弹出窗口(MsgBox)来介绍自己:

提示:如果想让方法有返回值,则将本段代码第一行的Sub换成Function。

Private Gender As String, Age As Integer, Protected As Boolean Property Let 性别(x As String) Gender = Left(x, 1) End Property Property Get 性别() As String 性别 = Gender End Property Property Let 年龄(x As Integer) If x >= 18 Then Protected = False Else Protected = True End If Age = CInt(Round(CSng(x), 0)) End Property Property Get 年龄() As Integer 年龄 = Age End Property Property Get 受到未成年保护() If Protected Then 受到未成年保护 = "是" Else 受到未成年保护 = "否" End If End Property Sub 自我介绍() If Protected = True Then tmp1 = ",受到未成年人法的保护" Else tmp1 = ",不受未成年人法的保护" End If MsgBox Gender & "性,年" & Age & tmp1 End Sub 2 新建并使用这个类下的对象 插入模块: 在一个过程(Sub)中创建3个这个类的对象,Alice、Bob、哪吒: 赋予三个“人”以性别、年龄: 弹出框里那个黄的表示方法,白灰蓝那个表示属性 Sub 演示() Dim Alice As New 人 Dim Bob As New 人 Dim 哪吒 As New 人 Alice.年龄 = 26 Alice.性别 = "女" Bob.年龄 = 21 Bob.性别 = "男" 哪吒.年龄 = 16 哪吒.性别 = "男" Alice.自我介绍 Bob.自我介绍 哪吒.自我介绍 End Sub 点击运行试试看:

就会依次弹出:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有