ExceVBA编程系列之对象模型(3)—— 趣谈ExcelVBA编程中的对象、方法和属性 享有电子表格先生美誉的John Walkenbach为了帮助人们理解VBA中的对象、属性和方法之间的关系,曾将对象、属性和方法与快餐连锁店进行比较,很形象。稍作整理,供分享。 关于对象和集合的比喻 Excel的基本单元是Workbook对象;在快餐连锁店中,基本的单元是单个餐馆。使用Excel可以添加工作簿和关闭工作簿,所有打开的工作簿组成了Workbooks集合(Workbook对象的集合)。快餐连锁店的经营者可以增加餐馆和关闭餐馆,可以将连锁店中的所有餐馆视为”餐馆”集合(“餐馆”对象的集合)。 一个Excel工作簿就是一个对象,但是它还包含有其它的对象,比如工作表对象、图表对象、VBA模块等。而且,工作簿中的每个对象可以包含它自已的对象,例如,一个Worksheet对象可以包含Range对象、PivotTable对象、Shape对象等。 一个餐馆(就象一个工作簿一样)是一个对象,它包含有其它的对象,比如”厨房”对象、”饭厅”对象、”餐桌”对象等。所有单个的这些对象组成了它们各自的集合,例如,餐馆中的所有餐桌组成了”餐桌”集合。经营者可以向“餐馆”对象中增加或从中去除对象,例如,经营者可以向“餐桌”集合中增加更多的餐桌。而且,餐馆中的每一种对象又都可以包含其它的对象,例如,“厨房”对象包含“火炉”对象、“排气扇”对象、“厨师”对象、“水池”对象等。 关于对象的属性和方法的比喻 Excel对象都有属性。例如,Range对象包括Value属性和Name属性,而Shape对象包括Width属性和Height属性等。与此类比,连锁店中的对象也有属性。例如,“火炉”对象包含诸如“温度”和“炉灶数目”这样的属性。“排气扇”对象也有它自已的一套属性(例如“转向”、“每分钟的转数”等)。 除了属性之外,Excel的对象还有方法,使用方法对对象执行某项操作。例如,ClearContents方法将清除Range对象的内容。连锁店中的对象也有方法,可以很容易想象,为“火炉”对象提供“调温器”方法,或者为“排气扇”对象提供“开/关”方法。 使用Excel的时候,方法有时候会改变对象的属性。ClearContents方法可以更改Range对象的Value属性。同样,“火炉”对象上的“调温器”方法将影响它的“温度”属性。 使用VBA可以编写过程来处理Excel对象。在连锁店中,经营者可以下命令处理餐馆中的对象(例如,打开火炉,将排气扇开到最快)。 现在明白了吧。哈哈…… By fanjy in 2006-7-6
|