荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Jobs (温少), 信区: Visual
标  题: Microsoft Word 对象--运用Document对象
发信站: BBS 荔园晨风站 (Sun Jan 16 17:57:05 2000), 转信


运用Document对象

    当用户在Word中打开或创建一个文件的同时,也创建了一个Document对象。
用户可以使用Document对象或Documents集合的属性或方法来打开、创建、保存、
激活或者关闭文件。

返回Document对象

    用户可以使用语法Documents (index)来返回作为一个Document对象的任何打
开的文档,在这里index是该文档的名字或索引号。在以下的示例中,变量myDoc
包含一个Document对象,该对象代表名为“Report.doc”的打开的文档。

Set myDoc = Documents ("Report.doc")

    索引号代表了文档在Documents集合中的位置。在以下的示例中,变量myDoc
包含了一个Document对象,该对象代表Documents集合中的第一个文档。

Set myDoc = Documents(1)

注释 因为当用户添加或关闭多个文档时,某个特定文档的索引号会发生改变,所
以最好使用文档的名字来对Documents集合中的Document对象进行索引。

除了通过文档的名字或索引号来引用文档,还可以使用ActiveDocument属性来返
回一个引用活动文档(当前着眼的文档)的Document对象。以下的示例显示产活动
文档的名字;如果没有打开的文档,则该示例显示一条消息。

If Documents. Count >= 1 Then

MsgBox ActiveDocument. Name

Else

MsgBox "No documents are open"

End If


打开文档

要打开一个已经存在的文档,可以使用Open方法。Open方法应用于通过Document
属性返回的Documents集合。以下的示例打开了文件Test.doc(从当前文件夹)并且
启动了更改跟踪。

Set myDoc = Documents. Open (FileName :="TEST.DOC")

myDoc. TrackRevisions = True

注意到在上例中Open方法的返回值是一个Document对象,该对象表示刚被打开的
文档。在此示例中的文件名不包含路径;因此,是假定了该文件在当前的文件夹
中。但这会导致出现一个运行时错误,因为一旦用户创建了与当前文件夹不同的
文件夹,Visual Basic就再也找不到该文件了。但是,用户可以通过指明完整的
路径,就如同下表所示的那样,来确保打开正确的文件。

操作系统
 FileName参数

Windows
 FileName :="C:\Documents\Temporary File.doc"

Macintosh
 FileName :="Hard Drive:Documents:Temporary File"


如果用户的宏只用于一种文件系统,那么可以在FileName参数中指定路径分隔符(
“\”或者“:”),就如同上表所示的那样。以下示例显示了与文件系统无关的代
码,可以用来打开Sales.doc,并且假定Sales.doc已经保存在Word 的程序文件夹
中。

programPath = Options. DefaultFilePath (wdProgramPath)

Documents. Open FileName :=programPath & Application. PathSeparator &
"SALES.DOC"

PathSeparator属性返回当前文件系统(例如,“\”用于MS-DOS/Windows的文件分
配表,或者“:”用于Macintosh)的正确的文件分隔符。DefaultFilePath属性返
回文件的位置,比如文档所在文件夹的路径、程序文件夹或者当前文件夹。


如果所指定的文件名既没有在当前文件夹(如果没有指定路径)出现也没有在指定
的文件夹(如果指定了路径)中出现,那么就会发生错误。以下的示例使用
FileSearch对象的属性和方法来判断名为“Test.doc”的文件是否存在于用户的
默认文档文件夹中。如果找到了该文件(FoundFiles. Count = 1),那么就打开它
;否则,显示一条消息。
defaultDir = Options. DefaultFilePath (wdDocumentsPath)

With Application. FileSearch

.FileName = "Test.doc"

.LookIn = defaultDir

.Execute

If .FoundFiles. Count = 1 Then

Documents. Open FileName :=defaultDir & Application. PathSeparator &
"TEST.DOC"

Else

MsgBox "Test.doc file was not found"

End If

End With

也可以允许用户选择要打开的文件,而不是定死Open方法的FileName参数值。如
同以下示例所示的那样,可以使用带有wdDialogFileOpen常量的Dialogs属性来返
回一个Dialog 对象,该对象表示“打开”对话框(在“文件”菜单中)。Show方法
可以显示并且执行在“打开”对话框中完成的动作。

Dialogs (wdDialogFileOpen). Show

Display 方法只是用来显示特定的对话框而不作任何更多的操作。以下的示例检
查Display方法的返回值。如果用户单击“确定”来关闭对话框,返回值-1并且
打开所选择的文件,该文件的名字保存在变量fSelected中。


Set dlg = Dialogs (wdDialogFileOpen)

aButton = dlg. Display

fSelected = dlg. Name

If aButton = -1 Then

Documents. Open FileName :=fSelected

End If

要对如何显示Word对话框作进一步了解,请参阅“帮助”中的“显示内置Word 对
话框”一节的内容。

要判断某个特殊的文档是否打开,可以使用一条For Each…Next语句来对Documents
集合进行列举。如果名为“Sample.doc”的文档已经被打开了,以下的
示例就激活它;如果它尚未被打开,则该示例会打开它。

docFound = True

For Each aDoc In Documents

If InStr (1, aDoc. Name, "sample.doc", 1) Then

aDoc. Activate

Exit For

Else

docFound = False

End If

Next aDoc

If docFound = False Then Documents. Open _

FileName :="C:\Documents\Sample.doc"

可以使用Count属性来确定当前打开文档的数目。Count属性应用于Documents集合
,可以使用Document属性返回该集合。如果没有已打开的文档,以下的示例会显
示一条消息。

If Documents. Count = 0 Then MsgBox "No documents are open"

创建和保存文档

要创建一个新文档,可以对Documents集合应用Add 方法。以下的示例创建了一个
新文档。

Documents. Add

Add方法返回了仅作为一个Document对象而创建的文档。当用户添加一个文档时,
可以设置Add 方法的返回值是一个对象变量,以便用户可以在自己的代码中引用
该新文档。以下的示例创建了一个新文档,并且设置它的上边距为1.25英寸。


Dim myDoc As Document

Set myDoc = Documents. Add

myDoc. PageSetup. TopMargin = InchesToPoints(1.25)

第一次保存新文档时,可以随Document对象使用SaveAs方法。以下的示例将名为
“Temp.doc”的活动文档保存在当前文件夹中。

ActiveDocument. SaveAs FileName :="Temp.doc"

在文档被保存之后,用户可以使用它的文档名来调整Document对象。以下的示例
创建了一个新文档并且立刻把它保存为“1996 Sales.doc”。然后,该示例使用
新名字来作Documents集合中的该文档的索引,并且向该文档添加一张表格。

Documents. Add.SaveAs FileName :="1996 Sales.doc"

Documents ("1996 Sales.doc").Tables.Add _

Range :=Selection. Range, NumRows :=2, NumColumns :=4

要保存对一个已经存在的文档所进行的更改,可以随同Document对象使用Save方
法。以下的指令保存了名为“Sales.doc”的文档。

Documents ("Sales.doc"). Save

如果用户随同一个尚未保存的文档或模板使用Save方法,将会显示“另存为”对
话框来提示用户为该文件取名。要保存所有打开的文档,可以对Documents集合应
用Save方法。以下的示例保存了所有打开的文档,但没有提示用户为文件取名。


Documents. Save NoPrompt :=True

激活一个文档

要使另一个文档成为活动文档,可以对Document对象应用Activate方法。以下的
示例激活了打开的文档(MyDocument.doc)。

Documents ("MyDocument.doc"). Activate

以下的示例打开了两个文档,然后激活其中的第一个文档(Sample.doc)。

Set Doc1 = Documents. Open (FileName :="C:\Documents\Sample.doc")

Set Doc2 = Documents.Open (FileName :="C:\Documents\Other.doc")

Doc1. Activate

打印一个文档

要打印一个文档,可以对Document对象应用PrintOut 方法,如以下示例所示。

ActiveDocument. PrintOut

要通过程序来设置那些也可以在“打印”对话框(在“文件”菜单中)里进行设置
的打印选项,可以使用PrintOut 方法的参数来实现。用户可以使用Options 对象
的属性来设置打印选项,这些选项也可以在“选项”对话框(在“工具”菜单中)
“打印”一表里进行设置。以下示例设置活动文档打印隐藏的文字,并且只打印
出前三页。

Options. PrintHiddenText = True

ActiveDocument. PrintOut Range :=wdPrintFromTo, From :="1", To :="3"

关闭文档

要关闭一个文档,可以对Document对象应用Close方法。以下的示例关闭了名为“
Sales.doc”的文档。

Documents ("Sales.doc"). Close

如果对文档进行过修改,Word会显示出一条消息来询问用户是否要保存所进行的
修改。用户可以随SaveChanges参数使用wdDoNotSaveChanges或 wdSaveChanges常
量来使该提示不再出现。以下的示例保存并且关闭了Sales.doc。

Documents ("Sales.doc"). Close SaveChanges :=wdSaveChanges

要关闭所有已打开的文档,可以对Documents集合应用Close方法。以下的示例没
有保存修改就关闭了所有的文档。

Documents. Close SaveChanges :=wdDoNotSaveChanges

访问文档中的对象

用户可以从Document对象来访问返回对象的一系列属性和方法。要查看在
Document对象中所能使用的对象的层次关系图,可以参阅“帮助”中的“
Microsoft Word对象(Documents)”。例如,Table属性,它能够返回一个Table对
象的集合,可以在Document对象中使用。随着一个集合对象使用的Count属性能够
判断在该集合中所包含的项数。以下的示例显示一条消息来指出在活动文档中有
多少表格。


MsgBox ActiveDocument. Tables. Count & " table(s) in this document"

使用Table(index)可以返回一个单张表格对象,这里的index是索引号。在以下的
示例中,myTable代表“Sales.doc”文档里的第一张表格。

Set myTable = Documents ("Sales.doc"). Tables(1)

关于返回一个特殊对象的信息可以从“帮助”中的对象主题本身 (例如,“Table
对象”)和相应的集合对象主题(例如,“Table集合对象”)中获得。

向文档添加对象

可以使用随着能在Document对象中访问的集合对象的Add方法来向文档添加诸如脚
注、备注或表格这样的对象。例如,以下命令在myRange变量(myRange是一个包含
了一个Range对象的对象变量)所指定的位置上添加了一张3x3的表格。

ActiveDocument. Tables. Add Range :=myRange, NumRows :=3, NumColumns :=3

以下的示例在myRange变量所指定的位置上添加了一个脚注。

ActiveDocument. Footnotes. Add Range :=myRange, Text :="The Willow Tree"A

要获得支持Add方法的集合对象列表,请参阅“帮助”中的“Add 方法”。



--


   我想超越这平凡的生活,注定我暂时漂泊!

   我无法停止我内心的狂热,对未来的执着!

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.11.111]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店