常用对象概述 您可能知道程序设计的基本过程,了解VBA的基本数据类型,会使用程序控制语句,运用过一些程序设计的基本方法,还编写过一些程序,但如果您想自动化操作和控制Excel应用程序,则必须要与Excel的对象模型所提供的对象进行交互,因为Excel应用程序本身就是通过这些对象组织在一起的。 Excel的对象模型提供了数百个对象,当您在使用Excel时,有些对象可能会经常用到,而另外一些对象则不常用。一般来说,对Excel应用程序本身的一些设置、对工作簿和工作表的操作、单元格和单元格区域的操作、以及图表的操作等,是我们经常要涉及到的。因此,在学习Excel的对象模型时,我们可以先集中研究和探讨与这些操作相关的对象、方法、属性和事件,以及它们的使用,以此来逐步加深对Excel对象模型的认识和理解直至全面掌握。 这些对象包括: Application 对象 Workbook 对象 Worksheet 对象 Range 对象 在您使用Excel时,大部分的工作都是以这四类对象及它们的成员为中心的。Application对象代表整个Excel应用程序,而每个Workbook对象则包含一个Worksheet对象的集合,Range对象则代表单个单元格或单元格区域。 在前面的一系列文章中,我们详细讲解了集合和对象的概念。在本文中,将简略地描述这些对象及它们的部分方法和属性,使您对它们建立一个初步的印象。后面的一系列文章将对它们进行详细的解析,帮助您应用它们。 Application对象 Excel Application对象代表Excel应用程序本身,该对象中的一些成员关系到您的应用程序行为的正确与否。下面分别予以说明。 Application对象中有一些属性控制着Excel的状态和外观。例如,我们经常在程序中看到或用到的ScreenUpdating属性,它的默认值为True,这使得Excel在调用每个方法后都会更新屏幕,极大地影响了程序的运行速度,因此,您可以在代码运行前将其设置为False,但是一定要记住在程序运行结束前将其设置为True,以恢复它的默认状态,Excel不会为您自动恢复它。此外,Cursor属性控制着鼠标指针的外观;EditDirectlyInCell属性决定您是否可以直接在工作表中编辑单元格,否则您将只能在工作表的公式栏中编辑单元格;如果您把FixedDecimal属性设置为True,则您可以利用FixedDecimalPlaces属性来确定数值数据的小数位数;设置Interactive属性可以决定您是否可以使用鼠标和键盘,若您将Interactive属性的值设置为False,则禁用鼠标和键盘,但在程序处理完后您一定要将其值重新设置为True;若要决定当您按下Enter键后单元格的移动方向,您可以将MoveAfterReturnDirection属性的值设为xlDown(向下移动)、xlToLeft(向左移动)、xlToRight(向右移动)、xlUp(向上移动)。 有一些Application对象的属性可以返回对象。例如,ActiveCell属性返回活动窗口中当前活动单元格的引用;Sheets属性返回活动工作簿中Sheet对象的集合;Workbooks属性则返回当前所有打开的工作簿的Workbook对象的集合。 Application对象也提供了许多允许您执行操作的方法。例如,Calculate方法将允许您强制重新计算所有打开的工作簿、或者是特定工作簿、或者是特定的范围。 用Application对象所提供的属性和方法,您还可以处理Excel文件。例如,DefaultFilePath属性用来获取或设置用于加载和保存Excel文件的路径;FileDialog属性返回FileDialog对象,允许您选择一个文件并将其打开、或者选择一个文件的位置并保存当前工作簿、或者选择一个文件夹、或者选择一个文件名。此外,Application对象还提供了GetOpenFileName和GetSaveAsFileName方法允许您选择一个要打开的文件的文件名。 Application对象还有一些专有的成员。例如,WorksheetFunction属性返回的对象提供了Excel工作表函数,这些函数是VBA函数中所没有的;Windows属性允许您可以打开、关闭和排列Excel对象窗口。 Application对象除了提供属性和方法外,它还拥有大量的事件。例如,当任何一个表被激活时,会产生SheetActivate事件;当任何工作表中的单元格发生变化时,SheetChange事件会发生;当工作表上的选区改变时,SheetSelectionChange事件会发生;若您停用任何工作表,则SheetDeactivate事件会发生。 同时,Application对象也提供了各种处理Window对象的行为的事件。例如,当任何窗口被激活时,WindowActivate事件都会发生;当任何窗口被停用时,WindowDeactivate事件会发生。此外,Application对象还提供了当与任何Workbook对象交互时会发生的事件,例如,NewWorkbook事件发生在创建一个新的工作簿时;当任何工作簿被停用时,WorkbookDeactivate事件会发生。 Workbook对象 Workbook对象代表了Excel中的一个工作簿,而在上面所介绍的Application对象中的许多属性也适用于特定的工作簿。 Workbook对象提供了大量的属性,其中一些是我们经常要用到的。例如,Name属性返回工作簿的名称,FullName属性返回工作簿完整的路径名称,包括工作簿文件名,而Path属性则只返回工作簿路径部分。又如,Workbook对象有一个Sheets属性,返回一个Sheet对象,该对象包含Sheet对象集合,其中每个对象可以是Worksheet对象,也可以是Chart对象。 Workbook对象也提供了大量的方法,其中您最有可能使用的方法有:Activate方法激活一个工作簿,并且选择工作簿中的第一个工作表;Close方法关闭一个指定的工作簿,可以选择是否保存对工作簿的修改;Protect方法和UnProtect方法允许您保护或取消保护工作簿;Save方法用于保存工作簿;SaveAs方法保存工作簿并允许您指定名称、文件格式、路径等;SaveCopyAs方法将工作簿的一个副本保存到文件中。 Worksheet对象 Worksheet对象代表了工作簿中的工作表,同样,它也提供了大量的成员,使我们能对工作表进行操作。它的大多数属性、方法和事件与Application对象或Workbook对象所提供的成员的相同或相似。 Range对象 Range对象代表工作表中的单元格或单元格区域。您在Excel中最常使用的就是Range对象,直接面对或操作的也是它。例如,您对Excel中的单元格或单元格区域进行操作,都需要将其设置为一个Range对象,然后使用该Range对象的方法和属性,以完成对单元格或单元格区域的操作。基本上,对Excel的大部分操作都会涉及到Range对象,可见Range对象是很重要的。 Range对象用途广泛,表达方式也灵活多样。譬如,您可以对所选择的区域进行管理,可以在代码中引用Range对象所表示的区域或单元格,您甚至可以将各种技术组合起来,完成Excel应用程序现有功能所不可能完成的工作。 常用对象的集合 正如前面的文章所说,集合是指包含一组相似的或相关的对象的对象。有了集合,我们就可以将一组相似或相关的对象当作单一的对象来引用,并且可以很方便地操作集合中的某一个对象。通常,集合的名字都是单词的复数形式。例如,Workbooks集合表示当前打开的所有Workbook对象的集合,Worksheets集合表示指定工作簿或当前工作簿中所有的Worksheet对象,Sheets集合不仅包含Workbook对象,也包含Chart对象。 同时,集合也是某一对象的属性,请您细细体味这句话。 结语 好了,这篇文章也该结尾了。您看看,即使是最常用的对象,也涉及到如此繁杂的内容,但这些是我们必须要掌握和精通的,至少作为一名ExcelVBA编程人员应该如此。 我们使用对象,是通过设置对象的属性、或者获取对象的属性、或者使用对象的方法、或者应用对象的事件,来对对象进行操作,从而操作Excel的。在接下来的文章中,我将通过示例对这些对象进行尽可能详细全面的介绍和总结归纳。 By fanjy in 2006-7-8
|