(接上讲)

3.类模块 类模块是面向对象编程的基础,可以在类模块中编写代码,为并着手建设,为建立新对象做基础准备。这些新对象可以包含自定义的属性和方法。实际上,窗体正是这样一种类模块,在其上可安放控件。再次重复一遍,窗体正是这样一种类模块。

用类模块创建对象,这些对象可被应用程序内的过程调用。标准模块只包含代码,而类模块包含代码又包含数据,可视为没有物理表示的控件。什么是没有物理表示呢?看过我之前章节的朋友马上就会想到:没有占用内存。对的,在类没有实例化之前是不占用内存的。

软件模块详细设计(类模块的定义及设计)(1)

四 模块的设计

创建应用程序的最初部分是设计。首先需要为应用程序设计一个用户界面,这个界面的设计比较容易。但设计代码的结构就是一项较复杂的工作。构造应用程序的方法不同,可能会造成应用程序的性能以及代码的可维护性、可使用性不同。

典型应用程序包括若干个模块:应用程序中每个窗体的窗体模块、共享代码的标准模块和类模块。每个模块包含若干含有代码的过程:Event(事件)过程,Sub过程,Function过程,Property过程。在很多情况中都存在着多个对象共享的重复过程。这种情况最好创建一个共享的过程,使大家都可以调用它。即使将来修改这些程序,则只在一个地方修改就可进行全部修改,这将大大提高程序的可读性和可维护性。可以把所有的共享操作放在标准的模块中。

在设计类模块时要注意到接口封装,类为基于它创建的所有对象定义了属性(Properties),方法(Metho),事件(Events),这些属性、方法和事件也称为类的接口(Interface)。我们务必要做到接口只可升级,不可重新定义。其中的道理不再多说。关于什么是属性、方法和事件,相信大家学到这里已经有了一个深刻的理解和认识,如果还有什么模糊的地方也不要紧,在后续的教程中还会继续。关于类的知识,其实就是理解这几个关键知识点的过程。你确实理解了,我的讲解也就结束了。

软件模块详细设计(类模块的定义及设计)(2)

五 类模块的定义及总结

1 类是对象的定义。包含对象动作行为的相关信息,包括对象的名称、方法、属性和事件。但它不是对象本身,因为它不存在于内存中。当执行的程序代码实例化类时,就在内存中建立类的新执行个体,即对象。虽然只有一个类,但可在内存中建立多个相同类型的对象。

2 可以把类看作理论上的对象,也就是说,它提供对象的灵魂,但本身在内存中没有肉身(对象)的存在。从这个灵魂可以建立数量不限的肉身(对象)。每一个从类建立的肉身对象都有相同的接口:属性、方法和事件。但各肉身(对象)都像独立实体一样运作;例如,一个对象的属性可以设定成与其它相同类型对象不同的值。

3 Microsoft® Visual Basic® for Applications (VBA) 项目可以包含两种不同的类模块:一种是基本类模块,没有任何使用者接口与其相关联,另一种是与窗体或其它组件相关联的类模块。与窗体相关联的类模块其实与基本类模块完全一样,但只有相关联的窗体存在于内存中时,它们才存在于内存中。有相关联类模块之对象的范例是 Userforms、Microsoft® Access 窗体和报表、Microsoft® Word ThisDocument 对象、还有 Microsoft® Excel ThisWorkbook 和 SheetN 对象。

4 建立类的肉身(对象)若要在程序代码中使用自定义的对象,请先建立该对象之类的新执行个体。当我们建立类的肉身时,即在内存中建立由类定义的对象。可以从任何类型的模块内部,建立类的新执行个体。建立 ClassName 类型的对象变量,然后使用 New 关键词,将类的新肉身指定给对象变量。

今日内容回向:

1 类模块的有效行为是什么?

2 类模块有几类?

软件模块详细设计(类模块的定义及设计)(3)

在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

学习VBA是个过程,这个过程是自己忍受孤独的过程。

"水善利万物而不争",你看她绵绵密密,微处则无声,巨则汹涌。学习亦如此,把握现在,为达千里,需要默默耕耘,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时去自欺欺人。要在当下,用一颗充满生机的心灵,努力提高自己,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。一杯茶,满也好,少也好,不要去计较;浓也好,淡也好,其中都有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。一切众生的心都在变化,像时间一样,永远不会停留,把握现在就是福报。

VBA是利用Office实现自己小型办公自动化的有效手段,我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了五部VBA专门教程,回向给需要学习的朋友:

第一套:VBA代码解决方案 是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;

第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。

第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习。

第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,可以对促进自己理论的提高。

学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。在平静中积累自己的财富。我的上述教程是我多的经验的传递,大家可以根据1,3,2,5或者是4,3,2,5的顺序逐渐深入的逐渐学习。

软件模块详细设计(类模块的定义及设计)(4)

最后将一阙词送给致力于VBA学习的朋友:

浮云掠过,暗语无声,

唯有清风,惊了梦中啼莺。

望星,疏移北斗,

奈将往事雁同行。

阡陌人,昏灯明暗,忍顾长亭。

多少VBA人,

暗夜中,悄声寻梦,盼却天明。

怎无凭!

分享成果,随喜正能量

,