vb操作word详解文档格式.docx

上传人:b****7 文档编号:22587694 上传时间:2023-02-04 格式:DOCX 页数:46 大小:112.56KB
下载 相关 举报
vb操作word详解文档格式.docx_第1页
第1页 / 共46页
vb操作word详解文档格式.docx_第2页
第2页 / 共46页
vb操作word详解文档格式.docx_第3页
第3页 / 共46页
vb操作word详解文档格式.docx_第4页
第4页 / 共46页
vb操作word详解文档格式.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

vb操作word详解文档格式.docx

《vb操作word详解文档格式.docx》由会员分享,可在线阅读,更多相关《vb操作word详解文档格式.docx(46页珍藏版)》请在冰豆网上搜索。

vb操作word详解文档格式.docx

.Width=600

的文档,则该示例显示一条消息。

IfDocuments.Count>

=1Then

MsgBoxActiveDocument.Name

Else

MsgBox"

Nodocumentsareopen"

EndIf

打开文档

要打开一个已经存在的文档,可以使用Open方法。

Open方法应用于通过Document属性返回的Documents集合。

以下的示例打开了文件Test.doc(从当前文件夹)并且启动了更改跟踪。

SetmyDoc=Documents.Open(FileName:

="

TEST.DOC"

myDoc.TrackRevisions=True

注意到在上例中Open方法的返回值是一个Document对象,该对象表示刚被打开的文档。

在此示例中的文件名不包含路径;

因此,是假定了该文件在当前的文件夹中。

但这会导致出现一个运行时错误,因为一旦用户创建了与当前文件夹不同的文件夹,VisualBasic就再也找不到该文件了。

但是,用户可以通过指明完整的路径,就如同下表所示的那样,来确保打开正确的文件。

操作系统

FileName参数

Windows

FileName:

C:

\Documents\TemporaryFile.doc"

Macintosh

HardDrive:

Documents:

TemporaryFile"

如果用户的宏只用于一种文件系统,那么可以在FileName参数中指定路径分隔符(“\”或者“:

”),就如同上表所示的那样。

以下示例显示了与文件系统无关的代码,可以用来打开Sales.doc,并且假定Sales.doc已经保存在Word的程序文件夹中。

programPath=Options.DefaultFilePath(wdProgramPath)

Documents.OpenFileName:

=programPath&

Application.PathSeparator&

"

SALES.DOC"

PathSeparator属性返回当前文件系统(例如,“\”用于MS-DOS/Windows的文件分配表,或者“:

”用于Macintosh)的正确的文件分隔符。

DefaultFilePath属性返回文件的位置,比如文档所在文件夹的路径、程序文件夹或者当前文件夹。

如果所指定的文件名既没有在当前文件夹(如果没有指定路径)出现也没有在指定的文件夹(如果指定了路径)中出现,那么就会发生错误。

以下的示例使用FileSearch对象的属性和方法来判断名为“Test.doc”的文件是否存在于用户的默认文档文件夹中。

如果找到了该文件(FoundFiles.Count=1),那么就打开它;

否则,显示一条消息。

defaultDir=Options.DefaultFilePath(wdDocumentsPath)

WithApplication.FileSearch

.FileName="

Test.doc"

.LookIn=defaultDir

.Execute

If.FoundFiles.Count=1Then

=defaultDir&

Test.docfilewasnotfound"

EndWith

也可以允许用户选择要打开的文件,而不是定死Open方法的FileName参数值。

如同以下示例所示的那样,可以使用带有wdDialogFileOpen常量的Dialogs属性来返回一个Dialog对象,该对象表示“打开”对话框(在“文件”菜单中)。

Show方法可以显示并且执行在“打开”对话框中完成的动作。

Dialogs(wdDialogFileOpen).Show

Display方法只是用来显示特定的对话框而不作任何更多的操作。

以下的示例检查Display方法的返回值。

如果用户单击“确定”来关闭对话框,返回值-1并且打开所选择的文件,该文件的名字保存在变量fSelected中。

Setdlg=Dialogs(wdDialogFileOpen)

aButton=dlg.Display

fSelected=dlg.Name

IfaButton=-1Then

=fSelected

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

要判断某个特殊的文档是否打开,可以使用一条ForEach…Next语句来对Documents集合进行列举。

如果名为“Sample.doc”的文档已经被打开了,以下的示例就激活它;

如果它尚未被打开,则该示例会打开它。

docFound=True

ForEachaDocInDocuments

IfInStr(1,aDoc.Name,"

sample.doc"

1)Then

aDoc.Activate

ExitFor

docFound=False

NextaDoc

IfdocFound=FalseThenDocuments.Open_

\Documents\Sample.doc"

可以使用Count属性来确定当前打开文档的数目。

Count属性应用于Documents集合,可以使用Document属性返回该集合。

如果没有已打开的文档,以下的示例会显示一条消息。

IfDocuments.Count=0ThenMsgBox"

创建和保存文档

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

以下的示例创建了一个新文档。

Documents.Add

Add方法返回了仅作为一个Document对象而创建的文档。

当用户添加一个文档时,可以设置Add方法的返回值是一个对象变量,以便用户可以在自己的代码中引用该新文档。

以下的示例创建了一个新文档,并且设置它的上边距为1.25英寸。

DimmyDocAsDocument

SetmyDoc=Documents.Add

myDoc.PageSetup.TopMargin=InchesToPoints(1.25)

第一次保存新文档时,可以随Document对象使用SaveAs方法。

以下的示例将名为“Temp.doc”的活动文档保存在当前文件夹中。

ActiveDocument.SaveAsFileName:

Temp.doc"

在文档被保存之后,用户可以使用它的文档名来调整Document对象。

以下的示例创建了一个新文档并且立刻把它保存为“1996Sales.doc”。

然后,该示例使用新名字来作Documents集合中的该文档的索引,并且向该文档添加一张表格。

Documents.Add.SaveAsFileName:

1996Sales.doc"

Documents("

).Tables.Add_

Range:

=Selection.Range,NumRows:

=2,NumColumns:

=4

要保存对一个已经存在的文档所进行的更改,可以随同Document对象使用Save方法。

以下的指令保存了名为“Sales.doc”的文档。

Sales.doc"

).Save

如果用户随同一个尚未保存的文档或模板使用Save方法,将会显示“另存为”对话框来提示用户为该文件取名。

要保存所有打开的文档,可以对Documents集合应用Save方法。

以下的示例保存了所有打开的文档,但没有提示用户为文件取名。

Documents.SaveNoPrompt:

=True

激活一个文档

要使另一个文档成为活动文档,可以对Document对象应用Activate方法。

以下的示例激活了打开的文档(MyDocument.doc)。

MyDocument.doc"

).Activate

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

SetDoc1=Documents.Open(FileName:

SetDoc2=Documents.Open(FileName:

\Documents\Other.doc"

Doc1.Activate

打印一个文档

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

ActiveDocument.PrintOut

要通过程序来设置那些也可以在“打印”对话框(在“文件”菜单中)里进行设置的打印选项,可以使用PrintOut方法的参数来实现。

用户可以使用Options对象的属性来设置打印选项,这些选项也可以在“选项”对话框(在“工具”菜单中)“打印”一表里进行设置。

以下示例设置活动文档打印隐藏的文字,并且只打印出前三页。

Options.PrintHiddenText=True

ActiveDocument.PrintOutRange:

=wdPrintFromTo,From:

1"

To:

3"

关闭文档

要关闭一个文档,可以对Document对象应用Close方法。

以下的示例关闭了名为“Sales.doc”的文档。

).Close

如果对文档进行过修改,Word会显示出一条消息来询问用户是否要保存所进行的修改。

用户可以随SaveChanges参数使用wdDoNotSaveChanges或wdSaveChanges常量来使该提示不再出现。

以下的示例保存并且关闭了Sales.doc。

).CloseSaveChanges:

=wdSaveChanges

要关闭所有已打开的文档,可以对Documents集合应用Close方法。

以下的示例没有保存修改就关闭了所有的文档。

Documents.CloseSaveChanges:

=wdDoNotSaveChanges

访问文档中的对象

用户可以从Document对象来访问返回对象的一系列属性和方法。

要查看在Document对象中所能使用的对象的层次关系图,可以参阅“帮助”中的“MicrosoftWord对象(Documents)”。

例如,Table属性,它能够返回一个Table对象的集合,可以在Document对象中使用。

随着一个集合对象使用的Count属性能够判断在该集合中所包含的项数。

以下的示例显示一条消息来指出在活动文档中有多少表格。

MsgBoxActiveDocument.Tables.Count&

table(s)inthisdocument"

使用Table(index)可以返回一个单张表格对象,这里的index是索引号。

在以下的示例中,myTable代表“Sales.doc”文档里的第一张表格。

SetmyTable=Documents("

).Tables

(1)

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

向文档添加对象

可以使用随着能在Document对象中访问的集合对象的Add方法来向文档添加诸如脚注、备注或表格这样的对象。

例如,以下命令在myRange变量(myRange是一个包含了一个Range对象的对象变量)所指定的位置上添加了一张3x3的表格。

ActiveDocument.Tables.AddRange:

=myRange,NumRows:

=3,NumColumns:

=3

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

ActiveDocument.Footnotes.AddRange:

=myRange,Text:

TheWillowTree"

A

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

运用Range对象

当使用VisualBasic时一个常见的任务就是在文档中指定一块区域,然后对它进行处理,比如插入文字或应用格式等。

例如,用户可能想编写一个宏,来对文档中某个部分里的某个单词或短语进行定位。

那就可以使用一个Range对象来表示想在其中搜索特定单词或短语的部分文档。

在确定Range对象后,用户能够应用该对象的方法和属性来修改相应范围中的内容。

一个Range对象代表了文档中的一块连续的区域。

每一个Range对象都由一个起始字符位置和一个终止字符位置来定义。

与用户在文档中使用书签的方法类似,可以在VisualBasic中使用Range对象来识别一个文档的特定部分。

一个Range对象既可以和插入点一样小,也可以和整个文档一样大。

但是,与书签不同,Range对象仅仅在定义它的过程正在运行时才存在。

Range对象同选定内容相互独立;

也就是说,可以定义和修改范围而不会改变选定内容。

用户也可以在文档中定义多个范围,而此时每个文档窗格中仅有一个选定内容。

Start、End和StoryType属性唯一地确定了一个Range对象。

Start和End属性分别返回或者设置Range对象的起始和结束字符的位置。

每个文档构成部分起始处的字符位置是0(zero),而第一个字符之后的位置是1,依此类推。

StoryType属性的WdStoryType常量可以表示十一种不同的文档构成部分类型。

例如,如果在注脚区域中有一个Range对象,那么StoryType属性返回wdFootnotesStory。

要对文档构成部分作进一步了解,请参阅本节后面的“运用文档构成部分”一节的有关内容。

使用Range对象来代替Selection对象

宏录制器会经常创建一个使用Selection属性来控制操纵Selection对象的宏。

但是,用户通常可以用一个或几个Range对象来以很少的命令完成相同的任务。

以下的示例是用宏录制器创建的。

该宏对文档中的前两个单词进行加粗。

Selection.HomeKeyUnit:

=wdStory

Selection.MoveRightUnit:

=wdWord,Count:

=2,Extend:

=wdExtend

Selection.Font.Bold=wdToggle

以下的示例没有使用Selection对象而完成了相同的任务。

ActiveDocument.Range(Start:

=0,End:

=ActiveDocument.Words

(2).End).Bold=True

以下的示例对文档中的前两个单词进行加粗,然后插入一个新的段落。

=wdWord,Count:

=wdCharacter,Count:

=1

Selection.TypeParagraph

以下的示例没有使用Selection对象就完成了上述示例中的同样任务。

SetmyRange=ActiveDocument.Range(Start:

=ActiveDocument.Words

(2).End)

myRange.Bold=True

myRange.InsertParagraphAfter

前面的两个示例改变了活动文档中的格式但没有改变选定内容。

在大多数的场合下,Range对象比Selection对象更可取,原因如下:

用户可以定义和使用多个Range对象,而在每个文档窗口中只能有一个Selection对象。

控制管理Range对象不会改变所选择的文字内容。

控制管理Range对象比运用Selection对象速度要快。

使用Range方法返回Range对象

可以使用Range方法在特定文档中创建一个Range对象。

Range方法(可以从Document对象使用)返回一个Range对象,该对象定位于主文档构成部分中,有给定的起始点和结束点。

以下示例创建了一个Range对象,并且赋给myRange变量。

SetmyRange=ActiveDocument.Range(Start:

=10)

在上述示例中,myRange表示活动文档中的前十个字符。

当对保存在myRange变量中的Range对象应用一种属性或方法时,就可以看到已经创建的Range对象。

以下的示例对活动文档中的前十个字符进行加粗。

SetmyRange=ActiveDocument.Range(Start:

当用户需要对一个Range对象进行多次引用时,可以使用Set语句来设置一个等价于Range对象的变量。

但是,如果用户需要在一个对象上执行一次操作,那么就没有必要将对象保存到变量中。

用户可以使用一条确定范围并且改变Bold属性的命令来取得同样的结果;

如以下示例所示。

ActiveDocument.Range(Start:

=10).Bold=True

和书签类似,一个范围能够在文档中横跨一组字符,也可以标记其中的一个位置。

在以下的示例中,Range对象的起始和终止点相同,并且该范围内不包含任何文字。

该示例在活动文档的起始处插入文字。

=0).InsertBeforeText:

Hello"

用户可以通过使用如上述示例所示的字符位置数字,或者随同Selection对象、Bookmark对象或Range对象使用Start属性和End属性,来定义一个范围的起始和终止位置。

以下示例创建了一个Range对象,来表示活动文档中的第三和第四个句子。

SetmyDoc=ActiveDocument

SetmyRange=myDoc.Range(Start:

=myDoc.Sentences(3).Start,_

End:

=myDoc.Sentences(4).End)

技巧Range对象在文档中的表示不可见。

但是,用户可以使用Select方法来选定一个Range对象,以保证Range对象表示正确的文字范围。

在以下示例中的Range对象表示活动文档中的前三个段落。

在该宏运行完毕之后,选定内容是指包含在aRange变量中的文字范围。

SetaRange=ActiveDocument.Range(Start:

=0,_

=ActiveDocument.Paragraphs(3).Range.End)

aRange.Select

使用Range属性来返回一个Range对象

在许多对象都可以使用Range属性-例如,Paragraph对象、Bookmark对象、Endnote对象以及Cell对象-Range属性用来返回一个Range对象。

以下的示例返回了一个Range对象,该对象表示活动文档的第一段。

SetmyRange=ActiveDocument.Paragraphs

(1).Range

在创建了对Range对象的引用之后,用户可以使用它的任何属性或方法来修改该范围。

以下的示例复制了活动文档中的第一段。

SetmyRange=ActiveDocument.Paragraphs

(1).Range

myRange.Copy

以下的示例复制了活动文档中表格一的第一行。

ActiveDocumen

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1