|
这份礼物送给现在想学习类知识或曾经学过但因为各种原因没有“修成正果”的朋友,我期望的结果是这篇文章后,您可以在类模块中像在标准模块中写代码一样熟练,我也期望不至于太乏味而使您没有耐心看完整篇文章,或者说期望您学习的过程是轻松愉悦的,但愿我可以做到。
文章构划为8部分:
1.什么是类
2.为什么要学习类
3.类的预备知识
4.创建类属性
5.创建类方法
6.创建类事件
7.一个完整的类实例
8.未完的结尾
什么是类
在我们身边,相同或相似的物品无处不在,从生活用品,到工业产品,……通常它们都是由同一个可以称为“模具”的东西生产出来。
理解类,一般要先从对象谈起,但由于从不同的角度,有不同的理解,从而也有不同的关于类的定义,本文不去探讨一个完整并且公认的类概念,在这一部分后,只要你有一个基本的判断并且在遇到时知道是类就可以了。在上面的这个例子中,一个“模具”就是一个“类”,而由它生产出的每一个产品,就是一个“对象”。看下面的VBA语句:
Dim tx1 As Textbox
不用解释它的意思吧,这里我们用到一个类Textbox定义了一个对象tx1,再来看:
Dim tx1 As Textbox
Dim tx2 As Textbox
又定义了一个对象tx2,如果你不嫌烦,我还可以继续下去。对象增加了,但As后的Textbox没有变,它可以无限制的使用下去。
类是一个隐者,上面Textbox是VBA已经给我们准备好的一个类,我们无法知道VBA是怎么准备的(它的真身被隐藏了),但我们可以知道对象tx1怎么用。VBA把对对象的使用划分为三种,属性、方法和事件(后面预备知识我们再提)。
然而,Textbox是一个类,仍然不是本文要说的类,因为它是VBA已经给我们准备好了的,我们要做的,只是知道如何使用它而已。本文要介绍的,是利用VBA已经给我们提供的资源,来构建我们自己的类,姑且可称之为自定义类。这需要在VBE下,通过插入类模块,然后向类模块中写入代码来完成。这就是你常常听说的类,本文的主题就是这个包含代码的模块!通过这个模块,可以提供给我们一个和VBA提供给我们的诸如Textbox功能性质完全相同的类,然后,再由我们自己象使用Textbox一样使用!
类是一个隐者,她把自己藏在所有模块的最后,甚至在多数情况,她从不出场。现在,她挂着神秘的微笑,向你走来,你要拒绝吗?
为什么要学习类模块
类通常被认为是学习VBA的难点之一,之所以如此,因为相对于制造一个标准模块或用户窗体,我们可以找到的类的学习资源少之又少,甚至很多VB的书籍也只有缪缪字语(在后面的预备知识,我们再提另一个重要的原因)。从技术角度上看,类的构建,不象窗体,VBA的类也不象有些语言提供了可视的设计界面,感性上那样直接,隐者!她是不可视的设计,所有的构建都是通过在类模块中写代码来实现的。
1.学习是一种兴趣的追求
俗语云:学的千千万,用的有几何?又曰:书到用时方恨少。
林语堂先生将做学问划分为三重境界,第二重说“为伊消得人憔悴,衣带渐宽终不悔”,大多数朋友,包括本人,都不是专业程序员,学习程序只是一种兴趣和爱好,就好象有人喜欢修炼网游一样,对喜欢程序的人,不断地学习和提高,也是一种追求优秀的态度,并且乐意享受这个追求的过程。模块、控件、链接库和类构成软件工程开发的四大技术,而类技术是控件和链接库技术的基础,我们不得不学。
2.类有什么用
如你前面看到的我们使用Textbox类,类可以创建大量性质相近的对象,减轻我们的程序量,简洁代码并提高效率。
类定义后,在其它模块中使用时,我们就可以暂时忘记或不必考虑它内部复杂的细节,让我们变得轻松,VBA虽然不能真正封装类的形式,但在这里,我们可以封装它的概念。
这并不是类的全部好处,其它的,留着朋友们用的时候慢慢体会吧。
类挂着神秘的微笑,已经走到你的大门口,开门迎接她吧,你还等什么?
|
|