暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VBA类模块的有效行为

VBA语言専攻 2022-08-09
141

【分享成果,随喜正能量】做让你开心的事,和让你开心的人在一起,让笑如呼吸般频繁,让爱像生命一样长久。人生美好的享受是安居,是沉默,是孤独,是听见自己的呼吸声,是看到自己的起心动念。。

《VBA中类的解读及应用》教程是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。

类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA类模块的有效行为


第四十八讲  什么是模块,各种模块的有效行为(2)

(接上讲)

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

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



4  模块的设计

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

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

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



5  类模块的定义及总结

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

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

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

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


今日内容回向:

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

2  类模块有几类?









我20多年的VBA实践经验,全部浓缩在下面的各个教程中


【分享成果,随喜正能量】无自私之心,无纠责之意,万缘放下,处世如莲,随缘、知足、惜福。。

文章转载自VBA语言専攻,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论