《08中文 Excel 2000 编程 24 学时教程.pdf》由会员分享,可在线阅读,更多相关《08中文 Excel 2000 编程 24 学时教程.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、下载第8学时对 象 介 绍不论你是否已经意识到,到目前为止,你已经为用 V B A语言开发应用程序打下了基础。已经学会了创建变量、常量、消息框、输入框、条件逻辑和循环。缺乏的是直接用 E x c e l开展工作的经验。本学时中这种情况会得到改变,你将开始在 E x c e l的特定环境中开展工作。本学时的重点包括: 讨论V B A中的对象究竟是什么 讨论对象、属性和方法 Excel的对象模型概览 在V B A代码中使用范围(R a n g e)对象 对已知的和未知的范围进行处理 改变用代码进行操作的范围的大小和位置 在范围中输入数值8.1 对象是什么新术语在开始讨论对象之前,需要先指出一些也许
2、不太明白的情况。 V B A是一种语言,因此它具有一定的构造。当学习一种语言时,学到的大多数知识是如何使用该语言来描述某种事物的行为、操作或者外观,也就是英语中的名词或者主语。而在 V B A中被描述的对象称为对象。对象就是在编程环境中希望控制的目标。请举出E x c e l中元素的名字。你想到的也许是工作簿、工作表、单元格、范围和图表,而这些实际上只是一些E x c e l对象。8.2 对象、属性和方法新术语通过属性和方法可以控制对象。属性是指对象的特征,改变属性的值可以改变对象的行为或者外观。例如,使用属性,可以改变某个范围内的单元格的颜色、数值、字体或者格式。新术语另一方面,方法是对象可
3、以执行的操作。范围对象的 C l e a r方法就是一个例子。现在,回到对V B A和英语的比较。对象相当于 V B A语言中的名词,属性相当于形容词,而方法则相当于动词。可以用对象、属性和方法这样的术语对任何事物进行描述。例如你可以描述自己。你可以称为一个“h u m a n”对象,你的属性包括名字、身高、体重、眼睛的颜色、头发的颜色和年龄等,你的一些方法可以是睡觉、吃饭、跑步和编程等。在这里不是试图将对象、属性和方法的概念复杂化,实际上,它们处理起来非常简单。8.3 Excel的对象模型新术语开始在E x c e l(或者任何支持V B A的应用程序)中用V B A进行编程之前,必须先查看
4、E x c e l的对象模型。对象模型是用来描述对象之间的联系的。E x c e l的对象模型中有1 0 0 多个对象,但是,不要感到惊慌,你不用学习它们中的全部。也许在编程时,你只会用到其中的2 0个对象或者更少。要查看E x c e l中对象的列表,请完成如下步骤:1)关闭所有打开的工作簿,这样可以使工作环境更简洁。2)打开一个新的工作簿。3)按下A l t + F 11键,打开Visual Basic编辑器。4)按下F 1键,激活“帮助” 。5)输入问题“什么是对象” 。6)按回车键,从列出的主题中选择“ Microsoft Excel对象” ,此时会显示一张详细的对象模型图,如图8 -
5、 1所示。7)单击“Wo r k s h e e t s ( Wo r k s h e e t )”右面的箭头,将扩展这一级对象模型,如图 8 - 2所示。查看这个模型,在层次结构的顶部,可以看到“ A p p l i c a t i o n”对象。在第5学时中,你已经用过A p p l i c a t i o n对象了。在层次结构中,可以看到的下一个对象是“ Wo r k b o o k”对象,它和E x c e l文件等价。如果你对 E x c e l环境已经比较熟悉,对在工作簿 ( Wo r k b o o k )中发现工作表( Wo r k s h e e t s )对象不应感到惊奇,
6、而在工作表中有包括范围 ( R a n g e )对象。现在,你已经知道了在E x c e l中进行程序设计是最常用的五个对象中的四个!68使用中文Excel 2000编程 2 4学时教程下载图8-1 在线帮助系统十分详尽地描述了 E x c e l的对象模型图8-2 在Wo r k s h e e t对象中包括大量对象8.4 最常用的5个对象尽管在E x c e l的对象模型中包括 1 0 0多个对象,但你会发现程序设计主要集中在如下五个对象上: Application Wo r k b o o k Wo r k s h e e t Range Chart这并不是说用不着使用其他对象,只是说
7、明这五个对象最为常用。 A p p l i c a t i o n对象代表E x c e l。使用A p p l i c a t i o n对象可以控制应用程序级的设置、内置的 E x c e l函数以及高级方法,例如I n p u t B o x方法。Wo r k b o o k对象是指E x c e l中的工作簿,即是说 E x c e l文件。在V B A环境中,不说打开一个文件,而称为打开一个工作簿;也不说保存一个文件,而称为保存工作簿。学习E x c e l时最先了解到的其中一点就是, Wo r k b o o k中包括Wo r k s h e e t。Wo r k s h e e
8、t是Wo r k b o o k中独立的页,数据就保存在Wo r k s h e e t中。Wo r k s h e e t中包括单元格(C e l l) 。你也许会认为不得不编写大量的代码以对单元格对象进行控制,但是,实际上没有单元格这样的对象。有单元格属性,将在后面的学时中学到。相反,你将对范围(R a n g e)对象进行处理。范围对象是指一个或者多个单元格。大多数E x c e l用户都使用E x c e l的图表功能,所以你经常需要处理图表( C h a r t)对象。用“图表向导”创建图表时所做的一切都可以通过 V B A代码做到。你也许还没有意识到,在第 3学时中学习的控件也是对
9、象,包括命令按钮、选项按钮、复选框以及标签。在第1 5学时中,将进一步学习控件对象。8.5 对象的层次结构意味着什么新术语当查看对象模型时,会发现它看上去像一幅层次结构图。 A p p l i c a t i o n处于层次结构的顶部。在A p p l i c a t i o n对象下面,可以找到Wo r k b o o k对象。用V B A的术语来说,Wo r k b o o k对象包含在A p p l i c a t i o n对象中。更进一步, Wo r k s h e e t对象包含在 Wo r k b o o k对象中。包含(C o n t a i n m e n t )意味着一个对
10、象可以包含其他对象。将对象模型想象成俄罗斯嵌套木偶,当打开第一个木偶时,可以发现包含在它内部的另一个较小的木偶;而打开第二个木偶,又可以看到包含在它内部的另一个木偶,等等。对象的层次结构与此类似。8.6 在代码中引用对象你也许希望知道为什么必须掌握包含的概念。当在代码中引用对象时,就要用到包含的概念。在代码中要限定一个对象名,必须通过对象模型中的层次结构。例如,要引用工作簿B o o k 1中的工作表S h e e t 1上的范围A 1,必须使用如下代码:A p p l i c a t i o n . Wo r k b o o k s ( B o o k 1 ) . Wo r k s h e
11、e t s ( S h e e t 1 ) . R a n g e ( A 1 )实际上,在大多数情况下,可以省略对 A p p l i c a t i o n对象的引用(A p p l i c a t i o n . I n p u t B o x是一个例外) 。可以通过如下代码引用范围A 1:第8学时 对 象 介 绍使用69下载Wo r k b o o k s ( B o o k 1 ) . Wo r k s h e e t s ( S h e e t 1 ) . R a n g e ( A 1 )在代码中,并不总是需要使用完全限定的对象名。在某些情况下,例如在代码中某个工作表刚被激活时,
12、可以使用如下较短的引用方式:R a n g e ( A 1 )如何限定对象取决于你的经验。限定一个对象必须可以将它和同名的对象区分开来。例如,你可能有两个工作簿,每个工作簿中都有一个名为 S h e e t 1的工作表,在这种情况下,需要使用完整的限定名称以免混淆。8.7 在代码中使用对象当在代码中使用对象时,实际上是在做以下三种事情: 设置对象的属性。 获取对象的属性。 执行对象的方法。在下一部分中,将在这方面进行有一点深度的探索。8.7.1 使用属性要设置对象的属性,可以使用如下的基本语法:Object.propertyname = valueO b j e c t是对象名,p r o p
13、 e r t y n a m e是指需要改变的对象的属性名字,而 v a l u e是该属性可以设置的数值。对象的名字和属性之间用“ .”分开。例如,要设置范围对象的 Va l u e属性,可以使用如下代码:R a n g e ( A 1 ) . Value = 100获取对象的属性和设置对象的属性相似,基本的语法是:v a r _n a m e = O b j e c t . p r o p e r t y n a m e在上面的语法中,将对象某个属性的设置读入一个变量或者其他存储位置中,诸如另一个属性。如果要获取范围对象的Va l u e属性,可以使用如下代码:Dim sngValue A
14、s SingleS n g Value = Range(A1).Va l u e可以用其他多种方式来使用属性的设置。例如,可以使用如下代码在消息框中显示某个属性设置:MsgBox The ranges value is &Range(A1).value8.7.2 使用方法通过如下语法可以实现对象的方法:O b j e c t . M e t h o d当执行一个对象的方法时,需要用“ .”将对象和方法的名字分开。例如,如果需要执行工作簿的“O p e n”方法,可以使用如下代码:Workbooks(VBA Example).Open某些方法是带参数的,而参数又可能是必须的或者可选的。例如,以下
15、代码将工作簿保存为“Current Budget” :70使用中文Excel 2000编程 2 4学时教程下载T h i s Workbook.SaveAs Filename := Current Budget你也许已经猜到,有时对方法的引用就像对专门为某个对象设计的过程和函数的使用。这也可以解释为什么有的方法具有参数,有的方法甚至还有返回值。8.7.3 获取有关属性和方法的信息V B A的帮助系统为提供有关属性和方法的信息做了调整。通过如下步骤,可以看到这方面的一个例子:1)在当前工作簿中插入一个模块。2)在Visual Basic编辑器中,输入“w o r k s h e e t” 。3)
16、将插入点指向“w o r k s h e e t” 。4)按下F 1键,显示“帮助主题”对话框,如图 8 - 3所示。5)选择项目“Wo r k s h e e t ( o . . . )” ,并单击“帮助”按钮,显示“ Wo r k s h e e t对象”帮助主题如图8 - 4所示。6)查看帮助主题的顶部,可以看到列出的属性和方法。单击“属性” ,显示“已找到的第8学时 对 象 介 绍使用71下载图8-3 “帮助主题”对话框常常显示多个选项图8-4 帮助主题“Wo r k s h e e t对象” 不仅描述该对象,还提供该对象可用的属性和方法的信息主题”对话框,如图8 - 5所示。7)此时
17、,如果希望获得某个属性的详细信息,可以选中该属性,并单击“显示”按钮。而为了本学时的目的,请单击“取消”按钮返回“ Wo r k s h e e t对象”帮助主题。8)单击“方法” ,在“已找到的主题”对话框中显示所有可用的方法。9)单击“取消”按钮返回“Wo r k s h e e t对象”帮助主题。1 0)最小化帮助窗口。本学时的后面部分还要使用帮助系统。你会发现,作为一个初级的 V B A程序员,你知道希望做些什么,但是不知道如何去做。对于这种情况,帮助系统非常有用。找到对象的帮助主题并首先查看对象的属性,通常能够找到需要的属性。如果没有找到,可以再在对象的方法中试一试。8.8 使用对象
18、变量新术语在学习变量的数据类型时,有一种类型没有讨论。这种类型就是对象变量,它是指向某个对象的变量。因为对象变量指向一个对象,所以它们可以使用相应对象的属性和方法。创建对象变量和其他变量完全类似,也通过使用 D i m语句。可以使用通用的对象类型,也可以使用特定的对象类型。程序清单 8 - 1显示了对象变量声明的一些例子。程序清单8-1 对象变量的声明1: Dim BudgetSheet As Object2: Dim AnotherBudget As Wo r k s h e e t3: Dim WorkingFile As Wo r k b o o k4: Dim DeptCodes As
19、 Range第一条D i m语句使用通用的对象数据类型。通常情况下,不要使用这种对象变量的声明方法。其他的 D i m语句显示了更好的声明对象变量的方法。如果知道将要创建的对象的类型,那么最好在定义对象变量时加以指明。对象变量声明后,可以用 S e t语句将一个对象指定给该变量。程序清单8 - 2显示了S e t语句的用法。程序清单8-2 Set语句1: Set BudgetSheet = Wo r k b o o k s ( F i n a n c e ) . Wo r k s h e e t s ( B u d g e t )2: Set AnotherBudget = Wo r k b
20、o o k s ( M I S ) . Wo r k s h e e t s ( B u d g e t )3: Set WorkingFile = Wo r k B o o k s ( F i n a n c e )4: Set DeptCodes =Workbooks (Budget).Worksheets (Category). Range (A1:A12)设置了变量所引用的对象之后,就可以在代码中像对象名一样使用它们。程序清单 8 - 3举72使用中文Excel 2000编程 2 4学时教程下载图8-5 因为选择了“属性” ,所以列出了工作表的所有属性出了一个使用对象变量的例子。程序清
21、单8-3 使用对象变量1: Sub ObjectvarExample ()2: Dim WorkingRange As Range3 :4: Set WorkingRange = Workbooks (Hour8).Worksheets (Sheet1).Range (A1:D1)5 :6: WorkingRange.Font.Bold = Tr u e7: WorkingRange.Font.Italic = Tr u e8: WorkingRange.Font.Name = Courier9 :10: End Sub 在这个例子中,可以看到变量 Wo r k i n g R a n g e
22、用在对象名的位置上。正如你所见,这可以使你避免输入一个很长的名字全称。当进一步学习本书时,将发现对象变量的其他用途。在进行程序设计时,采用这样的原则:如果需要输入同样的对象的名字全称两次以上,就创建一个对象变量以节省输入时间。8.9 集合请先花点时间看一看曾经用过的对象名字的全称:A p p l i c a t i o n . Wo r k b o o k s ( B o o k 1 ) . Wo r k s h e e t s ( S h e e t 1 ) . R a n g e ( A 1 )请注意单词的复数形式Wo r k b o o k s和Wo r k s h e e t s,这就
23、是集合。一个集合是指一组相似的对象。Wo r k b o o k s是一个集合,而Wo r k s h e e t s是另一个集合。在前面的例子中, B o o k 1是集合Wo r k b o o k s的一个元素。在大多数情况下,集合都是复数形式的单词。没有R a n g e s对象,可以添加一个这样的对象。但是不能添加更多的R a n g e s,因为E x c e l已经做了定义和限制。要查看E x c e l中的一些可用的集合,请按照如下步骤:1)恢复帮助窗口。2)选择“目录”选项卡。3)打开“Microsoft Excel Visual Basic参考”主题。4)选择“Micros
24、oft Excel 对象” 。显示“M i c r o s o f t对象模型” 。5)滚动到“Microsoft Excel 对象”主题的底部,将看到对象模型的代码是有颜色的。黄色的项是对象和集合,而青色的项只是对象。对象模型图提供了理解和区分 E x c e l中的集合的非常好的工具。看完对象模型之后,请关闭“帮助”窗口。8.9.1 Add方法所有集合的一个共有特点是可以添加项目。通过添加可以在集合中创建新的元素。要在第8学时 对 象 介 绍使用73下载一个集合中创建新的元素,可以使用 A d d方法。例如,要添加一个新的工作簿,可以使用如下代码:Wo r k b o o k s . A
25、d d这行代码等价于打开E x c e l的文件菜单并添加一个新的工作簿。要添加一个新的工作表到工作簿中,可以使用如下代码:Wo r k s h e e t s . A d d8.9.2 Count属性集合支持一个非常有用的名叫 C o u n t的属性。C o u n t属性保存集合中元素的数目。如果希望知道一个工作簿中包括多少张工作表,可以使用如下代码:Dim iWSCount As IntegerIWSCount = Wo r k s h e e t s . C o u n t你也许想知道为什么要使用 C o u n t属性。设想你正在创建一个应用程序,其中包含与一周的各个工作日相对应的
26、工作表,当工作簿完成之后,可以通过使用 C o u n t属性来检测工作簿是否包括五张工作表。在这种情况下,可以使用类似程序清单 8 - 4中的代码。程序清单8-4 使用C o u n t属性1: Sub CountWorkSheets ()2: Dim iWSCount As Integer3: Dim sMessage As String4 :5: iWSCount = Wo r k s h e e t s . C o u n t6 :7: If iWSCount 7 Then8: sMessage = The workbook contains & iWSCount9: sMessage
27、 = stessage & . It should contain 7 worksheets. 10: MsgBox sMessage11: End If12: End Sub8.10 学时小结在本学时中,学习了 V B A中一些最重要的概念:对象、属性和方法。现在,你掌握了如何使用方法和属性来控制对象的功能和外观。从现在开始,将学习新的对象以及它们的属性和方法。有了这方面的知识,就能够为你的应用程序添加越来越多的功能。8.11 专家答疑问题:E x c e l中的对象有什么共有的特征?解答:所有的对象都具有属性和方法。属性控制对象的特征、外观以及行为,而方法是指对象所能执行的操作。问题:E
28、x c e l的对象模型显示为树状或者为层次结构,这是为什么?解答:这是因为包含的概念,一些对象包含在其他对象中,这就决定了对象模型的外观。74使用中文Excel 2000编程 2 4学时教程下载8.12 课外作业思考题和练习题是为了使你能够进一步地理解所学内容,答案请参考附录。8.12.1 思考题1)怎样设置属性?2)怎样调用方法?3)将一个对象指定给一个对象变量用什么语句?4)判断题:只有对象才有属性和方法,而集合没有。5)在集合中怎样创建一个新的元素?8.12.2 练习题使用对象浏览器或者在线帮助,找到下面的属性。对于A p p l i c a t i o n对象: Excel安装的目录路径。 使用的操作系统。 Excel注册用户的名字。对于Wo r k b o o k对象: Wo r k b o o k的保存位置。使用这些信息,你将编写一个新的过程。在当前工作簿中插入一个新的模块。创建一个新的名为Te l l M e M o r e的过程。该过程需要使用你找到的属性显示一系列的消息框。第一个消息框应当和图8 - 6相似。运行你的过程。提示:A p p l i c a t i o n有一个名为T h i s Wo r k b o o k的属性,其中包含当前工作簿的名字。当生成消息框显示工作簿是否已经保存时,可以使用这个属性。第8学时 对 象 介 绍使用75下载