Office编程技术理解对象模型Word格式文档下载.docx

上传人:b****4 文档编号:7638603 上传时间:2023-05-08 格式:DOCX 页数:30 大小:30.52KB
下载 相关 举报
Office编程技术理解对象模型Word格式文档下载.docx_第1页
第1页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第2页
第2页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第3页
第3页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第4页
第4页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第5页
第5页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第6页
第6页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第7页
第7页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第8页
第8页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第9页
第9页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第10页
第10页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第11页
第11页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第12页
第12页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第13页
第13页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第14页
第14页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第15页
第15页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第16页
第16页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第17页
第17页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第18页
第18页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第19页
第19页 / 共30页
Office编程技术理解对象模型Word格式文档下载.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Office编程技术理解对象模型Word格式文档下载.docx

《Office编程技术理解对象模型Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Office编程技术理解对象模型Word格式文档下载.docx(30页珍藏版)》请在冰点文库上搜索。

Office编程技术理解对象模型Word格式文档下载.docx

例如,MicrosoftExcel的Application对

象包含了Workbook对象,而Word的Application对象中则包含了Document

对象。

因为此Document对象的存在依赖于Word的Application对象的存

在,所以此Document对象被称之为Application对象的子对象(child),

反过来,此Application对象被称之为Document对象的父对象(parent)。

许多子对象又有它们自己的子对象。

例如,在MicrosoftExcel里,Workbook

对象包含了Worksheet对象,或者说,它是Worksheet对象的父对象,

Worksheet对象表示在Workbook对象中的所有的工作单。

一个父对象可以拥有

多个子对象;

例如,Word的Windows对象拥有Panes,Selection,以及

Object等子对象。

同样,一个子对象也可以拥有多个父对象;

例如,Word的

Windows集合对象同时是Application对象和Document对象两者的子对象。

对象组成应用程序的方法彼此之间按照它们被分开的内容的功能又

相互联系起来,这叫做对象的分层结构(Objecthierarchy)或是

对象的模型(Objectmodel)。

 

注意:

如果你在安装MicrosoftOffice的过程中单击了“典型安装(Typical)

”,你将需要重新安装以将你所想要的了解的应用程序的VisualBasicfor

Application相应的帮助安装进去。

另外为包含低级别的对象,在对象分层结构中的每个对象,它所包含的内容

和功能都能够提供给该对象本身,以及在对象分层结构中处于该对象之下的

那些对象。

在对象分层结构中的级别越高,则它的内容和功能的覆盖范围也

就宽。

例如,在MicrosoftExcel中,Application对象中包含了应用程序

窗口的大小已经退出此应用程序的功能;

Workbook对象中包含了文件名称

和工作簿的格式,以及存储此工作簿的功能;

在而Worksheet对象中则包含

了工作表的名称以及删除此工作表的功能。

你通常并不能接触到你对文件的内容(例如在MicrosoftExcel工作表中的数

值,或是在一个Word文档中的文本)所想的事情,除非你已经在对象的分层

结构中相当多的级别里进行了移动,这是因为这些特殊的信息从属于应用程

序中非常特殊的部分。

换句话说,在一个工作表中的表元里面的值仅仅值提

供给那个表元,而不是工作表里的所有的表元,所以你不能在Worksheet对

象中直接存储它。

存储在一个对象中的内容和功能同该对象的范围都有这样

本质的联系。

总的说来,一个应用程序中的内容和功能被围绕着该应用程序的对象模型中

的对象进行了分割。

在对象分层结构中的对象联合起来又包含了应用程序中

的所有内容和功能。

对象们分别提供了对这些内容和功能中非常特殊的区域

的访问。

什么是属性和方法?

要接触包含在一个对象中的内容和功能,你需要使用此对象的属性和方法。

下面的MicrosoftExcel例子使用了在Range对象中的Value属性来设置一个

名称为“Current.xls”的工作簿中的“Sales”工作表的B3表元的值。

Workbooks("

Current.xls"

).Worksheets("

Sales"

).Range("

B3"

).Value=3

在下面的例子里使用了Font对象中的Bold属性来将“Sales”工作表中的

B3表元设置为加粗格式。

).Font.Bold

=True

在下面的Word例子里使用了Document对象中的Close方法来关闭名称为

“Draft3.doc”的文件。

Documents("

Draft3.doc"

).Close

通常,你使用属性来接触内容,这些内容可以包括包含在一个对象中的文本,

或是针对此对象的属性设置;

而你可以使用方法来接触功能,这些功能使你可

以对内容做你所希望的每一件事情。

然而,需要小心,在属性和方法之间的区

别并不总是这样,在每个对象模型中都有相当数量的属性和方法,它们都违反

了这个规则。

对象模型是如何同用户的界面相联系的?

一个应用程序对象之间的相互影响有两种方法可以实现:

人工的(使用用户

接口)或是程序自动进行的(使用编程语言)。

在用户接口中,你可以使用

键盘或是鼠标,或是两者全上,来浏览应用程序中能够控制你所要改变的数

据或是使用希望使用的命令的那一部分。

例如,在MicrosoftExcel中,在一

个名为“Current.xls”的工作簿中的一个名为“Sales”的工作表中的B3表

元里输入一个数值,你单击tab来到达Sales工作表上,你在单击进入表元B3,

然后你可以输入一个数值。

用VisualBasic的语言来说,你在对象的分层结构中从最高级别的对象移动

到那个包含了你希望用来工作的内容和功能的对象上,并且你使用了那个对

象的属性和方法来接触到此内容和功能。

例如,下面的MicrosoftExcel例

子移动到了一个名为“Current.xls”的工作簿中的一个名为“Sales”的工

作表中的B3表元,并设置此表元的内容。

Workbooks("

因为用户接口和VisualBasic是两种能够用来访问完全相同的内

容和功能的方法,许多对象,属性,以及方法,都共享在用户接

口中的要素的名称,并且所有的对象模型的结构都同用户接口中

的结构相类似。

这还意味着对于你通过用户接口所进行的每个行

为,都有等效的VisualBasic代码存在。

为什么知道一个对象在对象模型中的位置是麻烦的?

理解一个对象在对象模型中的位置是非常重要的,因为在你能够使用一个对

象进行工作之前,你不得不在对象模型中移动以达到它。

这通常意味着你不

得不在对象分层结构中从该对象上面的所有对象开始,一步一步地接近并到

达它。

例如,在MicrosoftExcel中,你不能直接就进入到一个工作表的特定

表元中去,而不需要首先进入包括了此工作表以及表元的应用程序。

下面的

例子里在一个叫做“AnnualSales.xls”的工作簿中的“SecondQuarter”

工作表的B3表元中插入数值3。

Application.Workbooks("

AnnualSales.xls"

).WorkSheets("

Second

Quarter"

).

Range("

同样,在下面的Word例子里为在首先被打开的文档的第三自然段中的第二个字

设置为加粗格式。

Application.Documents

(1).Paragraphs(3).Range.Words

(2).Bold=True

什么是集合对象

当你使用VisualBasic的图形帮助来研究你希望进行编程的应用程序的对象模

型时,你可能会注意到在图形中有许多的方框,其中包含了两个字——通常是

同一个对象名称的单数形式和复数形式,例如“Documents(Document)”或是

“Workbooks(Workbook)”。

在这些情况下,第一个名称(通常是复数形式)

表示它是一个集合对象(collectionobject)的名称。

一个集合对象是一个

含了一系列相关对象的对象。

你可以使用这些处于一个集合内的所有对象进行

作,把它们当作一个单一的组来使用,而不是分别使用它们。

第二个名称(通

常是单数形式),被一个括号所包围着,它是在集合中的单个对象的名称。

如,在Word中,你可以使用Documents集合来工作,将所有在该集合对象中的

Document对象作为一个整体来使用。

尽管Documents集合对象和Document对象从它们的根本来说都是对象,它们分

别都有它们自己的属性和方法,但是在大多数的对象模型图形中通常都把它们

组合为一个整体以减少复杂性。

你可以使用一个集合对象来接触在该集合对象

中的个别对象,通常使用的是Item属性或方法。

在下面的PowerPoint例子中使

用了Presentations集合对象中的Item属性以使名为“TradeShow”的简

报处于活动状态,然后再关闭它。

所有其它打开的简报被留下打开。

Presentations.Item("

TradeShow"

注意:

对于大多数的集合对象来说,Item属性或方法是缺省的方法。

因此

Presentations("

TradeShow"

).Close同上面的语句是等效的。

你还可以建立一个新的对象并把它添加到一个集合对象中,这通常需要使用该

合对象的Add方法。

下面的Word例子创建了一个基于Normal模板的文档。

Documents.Add

通过使用Count属性,你可以知道在一个集合对象中到底有多少的对象。

下面

的MicrosoftExcel例子使得如果有超过3个的工作簿被打开的话,将在一个信

息对话框中显示出打开的工作簿的数目。

IfWorkbooks.Count>

3ThenMsgBox"

Morethan3Workbooksareopen"

集合同其它的方法一样都是非常有用的。

例如,你可以对一个给定的集合中的所有

象进行操作,或是你能够设置或是测试在该集合中的所有对象。

要做到这些,你可

使用一个ForEach...Next或For...Next结构来循环历遍集合中的所有的对象。

使用对象使工作自动化

在MicrosoftOffice中,要想是工作能够自动进行,你首先需要返回一个包含

了你希望进行的内容和功能的对象的引用(reference),然后你位该对象提供

属性和方法。

返回一个对象的引用

在你使用对象做任何事情之前,你需要返回指向该对象的一个引用。

要做到这些,

你必须构造一个表达式一获得对处于对象模型中的一个对象的访问,然后在使用

属性和方法在对象的分层结构中上下移动直到你到达你所要用来工作的那个对象

为止。

这些你用来返回你的起始的对象以及从一个对象移动到另一个对象的属性

和方法被称作对象存取器(objectaccessors),或者只称作存取器。

一旦你使

用存取器构造了一个表达式来返回一个对象的引用,你需要把下面的指导牢记在

心。

o一个获得对对象模型访问的通常的地方是此对象的最顶端,它通常就是

Application对象。

使用Application属性以返回指向Application

对象的引用。

下面的表达式返回了指向Application对象的一个引用

(适用于任何包含了一个Application对象的对象库)

Application

o要想从分层结构的最顶端的对象向下到达一个对象,你必须一步一步地通

过所有在分层结构中位于其上的对象,使用存取器从一个对象返回另一个

对象。

例如,Word的Application对象的Document属性返回Documents

集合对象,它代表了所有的打开的文档。

下面的表达式返回了一个指向

Word的Documents集合对象的引用。

Application.Documents

o你可以使用快捷的存取器以获得对在模型中的对象的直接访问,而不需

要从Application对象一直往下移动。

这些快捷包括了存取器——例如

Documents,Workbooks,以及Presentations属性——你可以使用它们

本身来返回一个指向特定应用程序的文档集合的引用。

例如,在Word

里,你可以使用下面的两种语句来打开MyDoc.doc。

Application.Documents.Open

FileName:

="

C:

\DOCS\MYDOC.DOC"

Documents.OpenFileName:

还有一些其它的快捷存取器——例如说ActiveWindow,

ActiveDocument,ActiveWorksheet,或是ActiveCell属性——

它们可以返回指向一个应用程序活动部分的直接引用。

的语句关闭活动的Word文档。

注意Application对象和Documents

集合对象没有出现。

ActiveDocuments.Close

提示当在Classes窗格中作为一个快捷被选中时,

你可以使用任何出现在对象浏览器的Memberof窗格中的存

取器;

这就是说,你不需要在使用属性和方法之前返回应用

此属性和方法的对象,这是因为VisualBasic能够从你运行

的代码的上下文中检测出全局的属性或方法被应用于哪个对

象。

o要想返回一个集合中的单个成员,你通常可以使用此成员的名称或索引

号码通过Item属性或方法来完成。

例如,在MicrosoftExcel中,下面的

表达式返回一个指向一个打开的名为“Sales”的工作簿的引用。

Workbooks.Item("

Item属性或方法对于大多数集合来说是缺省的方法。

所以下

面的两个表达式是等效的。

Workbooks.("

o要想在分层结构中从一个对象往高处浏览,你通常可以使用该对象的

Parent属性。

注意该Parent属性并不总是返回一个对象的最直接父对

象——它可能会返回该对象的“祖父”,特别是当此对象是一个集合对

象的成员之时。

这就是说,一个处于集合中的对象的Parent属性可能

会返回此集合对象的父对象,而不是该对象的父对象。

例如,一个Word

的Document对象的Parent属性返回Application对象,而不是

Documents集合对象。

可以使用TypeName函数来找出一个对象的

Parent属性所返回的引用是什么对象的引用。

例如,在MicrosoftExcel

中,下面的语句显示了对象的类型,该对象由Worksheet对象的Parent

属性所提供。

MsgBoxTypeName(Workbooks

(1).Worksheets

(1).Parent)

提示你可以使用Typename函数来确定通过任何表达式所返

回的对象的类型,而不仅仅只是包含Parent属性的表达式

所返回的对象类型。

ActivePresentation.Slides

(1).Shapes(3).

Object.Application

在对象上应用属性和方法

在你已经返回了指向你希望用来工作的对象的参考之后,你可以在此对象上应

用属性和方法来为之设置一个属性或是在其上执行一个动作。

在返回指向对象

的引用的表达式中包含有属性或方法以及应用它们的对象。

你需要使用“点

(dot)”操作符(.)来将它们分开。

下面的例子,可以在MicrosoftExcel,

Word,或是PowerPoint中运行,它通过使用Window对象的Left属性来设置活

动窗口的左边的位置,ActiveWindow属性返回了一个指向该Window对象的

引用。

ActiveWindow.left=200

下面的Word例子通过使用Document对象的Close方法关闭活动的文档,

ActiveDocument属性返回了一个指向该对象的引用。

ActiveDocument.Close

属性和方法可以带有限制它们如何操作的参数。

在下面的Word例子里,

Document对象(ActiveDocument属性返回了一个指向该对象的引用)的

PrintOut方法带有相应参数,该参数指定了它应该打印的页码范围。

ActiveDocument.PrintOutForm:

3"

To:

7"

你可能不得不在对象模型中的几个页面(layers)移动,以获得你认为是在

应用程序中的真正的数据,例如说在MicrosoftExcel工作表的表元中的值,

或是在一个Word文档中的文本。

下面的Word例子使用了如下的属性和方法来

从对象模型的顶端移动到文档的文本中:

oApplication属性返回一个指向Application对象的引用。

oApplication对象的Documents属性返回一个指向Documents集合

的引用。

oDocuments集合的Item方法返回一个指向单个Document对象的引用。

oDocument对象的Words属性返回一个指向Words集合的引用。

oWords集合的Item方法返回一个指向单个Range对象的引用。

oRange对象的Text属性设置此文档第一个字的文本。

Application.Documents.Item

(1).Words.Item

(1).

Text="

The"

因为此Documents属性是一个全局的属性,它可以被使用而没有

Application的限制,并且因为Item对于集合对象来说是缺省的属性和方

法,所以你不需要在你的代码中明确地指出它们。

你可以因此缩短你的进程

的语句,该语句显示在下面的例子里。

这个例子隐含地从上至下进行移动,

和前面所详细解释的例子一样历遍了同样多的级别。

Documents

(1).Words

(1).Text="

同样,下面的MicrosoftExcel例子从上至下到达Range对象,该对象表示在

一个名为“Sales.xls”的工作簿中叫做“New”的工作表里面的B3表元。

Sales.xls"

).Worksheets("

New"

).Range("

B3"

).Value=7

获得书写代码的帮助

有时候你可以猜到你需要为之返回引用的对象是什么对象,如何构造一个表

达式来返回它,以及你需要在其上应用什么属性或方法以完成一项工作。

如,如果你希望关闭一个活动的Word文档,你可能会猜测到该关闭文档的功

能是由Close方法所控制的,该方法应用在Document对象上,而该对象由

ActiveDocument属性来返回——你是对的。

然而,在大多数的时候,要想

描绘出你希望使用的对象,属性以及方法并不是那么简单。

幸运的是,

Office应用程序包括了许多的工具,这些工具可以帮助你书写代码来进

行你的工作。

使用宏记录器

如果你不知道你需要使用哪些属性和方法来完成你的工作,但是你知道如何使

用用户界面接口来温差这项工作(或是某些同该工作非常类似的行为),你可

以使用宏记录器来将对用户界面接口的一系列动作翻译为一系列的VisualBasic

的程序指令。

例如,如果你不知道使用哪些属性和方法来缩进Word文档的一个

段落,你可以记录你缩进一个段落的动作。

要在MicrosoftExcel,Word,或是PowerPoint中记录用户界面的动作,你需

要按照以下步骤进行:

1.打开工具(Tools)菜单,指向宏(Macro)命令项,然

后单击录制(RecordNewMacro)。

2.如果你需要的话,你可以改变缺省的宏的名称和位置。

后单击确定(OK)以启动宏记录器。

3.在用户界面中,进行你希望的工作,直到完成。

4.当你完成了你的工作,在停止记录(StopRecording)

工具条上单击停止记录(StopRecording)按钮。

5.在工具(Tools)菜单中,指向宏(Macro)命令项,然

后单击宏(Macros)。

6.选择步骤2中建立的宏的名称,然后单击编辑(Edit)。

你可以检测此VisualBasic代码,然后试着对你通过在用户界面中特定行为所

建立的属性和方法进行修正。

尽管此代码可以给你一个好的主意,以了解更多的有关这些属性和方法的信息

,但是你可能并不希望直接使用这些代码而不经过任何的编辑修改。

这是因为

这些由宏记录器产生的代码通常并不是十分有效或是强壮。

例如,记录代码通

常从一个对象中启动,该对象在你开始记录以及在对象模型中从该对象移动到

其它部分时被选择或是激活,如下面的Word例子所示。

Selection.ParagraphFormat.LeftIndent=InchesToPoints(0.5)

下面是另一个在PowerPoint中基于选择的代码的例子:

ActiveWindow.Selection.ShapeRange.Delete

在上面所描述的代码中就存在着问题,除了它们的效率不高以外,当你运行这

些代码以使它正常工作时,还要依赖于被

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2