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

VBA类与对象(object)间的关联

VBA语言専攻 2023-01-10
170
【分享成果,随喜正能量】对上面的人不要心生嫉妒,对中间的人不要攀比竞争,对下面的人不要轻凌污辱,力求做到有一颗善良的心和利他的善行。。
《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。
类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA类与对象(object)间的关联

第五十七讲  类(class)及对象(object)间的相互关联1

大家好,从这讲开始我们深入地讲解OOP中对象的相关内容,当然主要是针对类模块的内容进行讲解。对于OOP的概念,我们并不陌生,是Object Oriented Programming的一种简称,翻译过来就是面向对象编程或者面向对象的程序设计,这种设计基本原则是计算机程序由单个能够起到子程序作用的单元或对象组合而成。是以对象为核心,程序由一系列对象组成。

1  OOP编程中类和对象的关系

在这种思想指导下,就形成了类的概念。类是对现实世界的抽象,也就是我在之前经常提到的“魂”,这种“魂”包括表示静态属性的数据和对数据的操作。而对象是类的实例化。对象间通过消息传递相互通信,来模拟现实世界中不同实体间的联系。也就有了我们的事件、过程等定义的描述。我们来看看对象和类两者的关系:
1) 对象(ObjectObject,翻译过来的名词解释是“物体;目标;宾语;客体,对象”。可以看出,这个名称包含了多种的含义,在这里我们可以理解成,对象是可以做事情的一些东西。一个对象有状态、行为和标识三种属性。
2) 类(class是一个共享相同结构和行为的对象的集合。这个定义虽然很抽象但并不难理解,从这个解释中也可以看出类是对象的“魂”,对象是类的“肉身”这种解释。因为类(Class)定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的行为。举例来说,“老鼠”这个对象,会包含老鼠的一切基础特征,例如它的叫声、毛皮颜色、形状等特征。还可以定义老鼠的本能。我们把一个这些类的方法和属性被称为类“成员”。


2  对象间相互关联组成了一个特有的结构化体系

在 Excel对象模型时我们知道Application、Worksheet、Workbook、Range、Cell本身都是对象(Object),面向对象是一种代码构成模式, OOP过程中我们其实是根据各个对象之间的关联关系,通过调用不同对象的属性和方法来实现业务关系的逻辑。
例1,删除空白行的代码:
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
我们一步步地分析一下,上述代码中,对各个对象的属性和方法的调用过程:
① SpecialCells方法  通过这个方法,返回符合条件的区域,这个区域是Range对象。
② Range对象的EntireRow属性  这个属性返回 Range对象,这个对象是获得的当前单元格所在整行的所有单元格。
③ Range对象的Delete方法  这个方法是将所在行删除,以实现所期望的功能。
由此我们看出此时通过EntireRow属性,将Range与Row关联起来,从而达到我们的目的。

3  对象属性和方法的提示


如上图,我们在书写VBA代码时要多利用上述对象属性和方法的提示来书写,可以提高我们代码的准确性。上面的截图中有手形状的是对象的属性,书的形状是对象的方法。
今日内容回向:
1  什么是类?什么是对象?
2  类和对象两者的关系是怎样的?
3  对象是如何完成自己特定业务的?




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



【分享成果,随喜正能量】也许一个快要熄灭了的火把,同一个不曾点过的火把并在一处,会放出极大的光来。。

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

评论