【分享成果,随喜正能量】诽谤、挫折、失败、疾病等任何形式的痛苦,其实是非常伟大的老师。依靠它,可以看清很多事情的真相,不再盲目地自我膨胀。。
《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。
类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:第四讲:打开你的VBE,开始建立属于你的类模块(上)
第四讲 打开你的VBE,开始建立属于你的类模块
大家好,今天继续讲解VBA中类的解读及应用,今日讲解第4讲内容: 打开你的VBE,开始建立一个你的类模块。
我们打开VBE的窗口,插入一个类模块,这时也就建立了一个类。类模块的名字就是类的名字。我们可以选中这个类模块,按下F4件修改你需要的名称,这里我们将“类1”改名为“MyClass”,在名字下面你会看到只有一个属性:Instancing,其值也只有两个选项:Private和PublicNotCreatable。Instancing属性决定该“类”在其它工程中是否可以被使用。我们知道,标准模块中的Public过程,可以保存在宏工作簿,可以被另一工作簿的工程调用,但类中的代码是不可分割的整体,所以必须整体决定是否允许外用。当Instancing属性设为Private(默认)时,不允许其它工程访问。当设置为PublicNotCreatable时,只有在自己的工程创建了该类的对象时,其它工程才允许使用这个对象,注意,仅仅是在本工程中创建的对象,而不能用它在其它工程中创建对象。这就是上面两个值的意义。
1 如何创建类属性的应用属性
对象属性的操作不外乎读和写两种。现在,看看作为类的提供者需要怎样做。
Property Get 返回属性的值;
Property Let 设置属性的值;
Property Set 设置对象属性的值(即:该属性含有对象引用)。
- 注意点:Property往往是成双出现在类中的某一个属性上,甚至可能三者同时出现,当一个类中某个属性只有Property Get时代表这一属性为只读属性。
下面我们将为“MyClass”的类,创建一个名称为x的字符型属性。
1)使用Public变量创建类属性
Public x$
2)使用Property过程创建类属性
Private s$
Property Get x() As String
x = s
End Property
Property Let x(ByVal c As String)
s = c
End Property
在上面的讲解中我们给出了两种创建类属性的方法,在第二种用过程创建,Property过程把对属性的读写分开了,下面讲解一下Property过程的工作机制:
1) Property Get过程提供了属性读功能: 当标准模块中的代码读取对象的属性时,便会触发存在的Property Get过程.
2) Property Let过程提供了属性写功能:当标准模块中的代码写入对象属性时,便会触发存在的Property Let过程.
上面两个过程没有先后的要求,可以只有一个,或者两个都有,从而提供出去的属性是只读或只写。
【待续】
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】喝茶,喝的是日月沐浴之下,山泉滋养之中,一年四季流动的自然之气。喝茶,就是让我们跟随这种草木之性,真正将自己还原到自然之中。 。