1、Word VBA 学习交流资料目录一、对象模型打开 Word VBA 帮助,首先看到的是 “Word 的对象模型”(如下所示)图表 1知识点:知道 Application 对象(Word 应该程序的总对象)、Doctuments对象(文档集对象)、Paragraphs 对象(段落集)、Selection(选中区域)对象、Tables(表格)对象、Sections(节,即 Word 的第一节)对象、Headers(页眉)对象。二、新增功能(略)原因:我们的初衷大多是从“零”开始,最基础的我们都不知道,何来“新增”啊?但是,以后学到相关的知识时,会跳到这里,学一些新增的“对象”、“方法”、“事件”
2、、“属性”等。三、编程概念对象是 Visual Basic 的结构基础,在 Visual Basic 中进行的所有操作几乎都与修改对象有关。Microsoft Word 的任何元素,如文档、表格、段落、书签、域等,都可用 Visual Basic 中的对象来表示。什么是对象和集合?对象代表一个 Word 元素,如文档、段落、书签或单独的字符。集合也是一个对象,该对象包含多个其他对象,通常这些对象属于相同的类型;例如,一个集合对象中可包含文档中的所有书签对象。通过使用属性和方法,可以修改单独的的对象,也可修改整个的对象集合。例如:ActiveDocument.Paragraphs(2).Rang
3、e.Characters(1).Font.Color = wdColorRed在 Word 的 VBA 中,大多数对象都是通过 Application 来访问,但有几个可以直接访问:如 activedocumnet、documents 等,当然通过 application 对象也行,但无疑后者更简略。什么是属性?属性是对象的一种特性或该对象行为的一个方面。例如,文档属性包含其名称、内容、保存状态以及是否启用修订。若要更改一个对象的特征,可以修改其属性值。若要设置属性的值,可在对象的后面紧接一个句号、属性名称、一个等号及新的属性值。下列示例在名为“MyDoc.doc”的文档中启用修订。Sub T
4、rackChanges()Documents(“Sales.doc“).TrackRevisions = TrueEnd Sub在本例中,Documents 引用由打开的文档(注意是对打开后文档的操作)构成的集合,而“MyDoc.doc”标识集合中单独的文档。并设置该文档的 TrackRevisions 属性。不能设置某些属性。属性的“帮助”主题中会标明可以设置该属性(可读写),或只能读取该属性(只读)。通过返回对象的一个属性值,可以获取有关该对象的信息。下列示例返回活动文档的名称。Sub GetDocumentName()Dim strDocName As StringstrDocName
5、= ActiveDocument.NameMsgBox strDocNameEnd Sub(这个例子输出的没有路径,只有名字.若带路径的话,把 strDocName = ActiveDocument.Name 改为:strDocName = ActiveDocument.Path & ActiveDocument.Name)在本例中,ActiveDocument 引用 Word 活动窗口中的文档。该文档的名称赋给了 strDocName 变量。说明:每个属性的“帮助”主题表明可以设置该属性(可读写),只能读取该属性(只读),或只能写入该属性(只写)。此外“Visual Basic 编辑器”中的
6、“对象浏览器”在浏览窗口的底部显示所选属性的读写状态。什么是方法?方法是对象可以执行的动作。例如,只要文档可以打印,Document 对象就具有 PrintOut 方法。方法通常带有参数,以限定执行动作的方式。下列示例打印活动文档的前三页。Sub PrintThreePages()ActiveDocument.PrintOut Range:=wdPrintRangeOfPages, Pages:=“1-3“End Sub在大多数情况下,方法是动作,而属性是性质。使用方法将导致发生对象的某些事件(所以,有人说:“方法是集成了的事件”),而使用属性则会返回对象的信息,或引起对象的某个性质的改变。返
7、回一个对象可通过返回集合中单独的对象的方式来返回大多数对象。例如 Documents 集合包含打开的 Word 文档。可使用(位于 Word 对象结构顶层的)Application 对象的 Documents 属性返回 Documents 集合。在访问集合之后,可以通过在括号中使用索引序号(与处理数组的方式相似)返回单独的对象。索引序号通常是一个数值或名称。详细内容,请参阅返回集合中的对象。下列示例使用 Documents 属性访问 Documents 集合。索引序号用于返回 Documents 集合中的第一篇文档。然后将 Close 方法应用于 Document 对象,关闭 Document
8、s 集合中的第一篇文档。Sub CloseDocument()Documents(1).CloseEnd Sub这个可能以后大多不用,原因就是索引序号在变,当打开、关闭一个文档时,对应的序号就增加或减少了数字,所以不好把握,大多不用。下列示例使用名称(指定为一个字符串)来识别 Documents 集合中的 Document 对象。Sub CloseSalesDoc()Documents(“Sales.doc“).CloseEnd Sub这个常用,让某个指定的文档关闭。集合对象通常具有可用于修改整个对象集合的方法和属性。Documents 对象具有 Save 方法,可用于保存集合中的所有文档。下
9、列示例通过使用 Save 方法保存所有打开的文档。Sub SaveAllOpenDocuments()Documents.SaveEnd Sub所有的文档保存,相当于按住 Shift 再点击文件下的全部保存命令。Document 对象也可使用 Save 方法保存单独的文档。下列示例保存名为 Sales.doc 的文档。Sub SaveSalesDoc()Documents(“Sales.doc“).SaveEnd Sub对指定的文档保存。若要返回一个处于 Word 对象结构底层的对象,就必须使用可返回对象的属性和方法,“深入”到该对象。若要查看该过程的执行,请打开“Visual Basic 编
10、辑器”,在“视图”菜单上单击“对象浏览器”。单击左侧“类”列表中的 Application。然后单击右侧“成员”列表中的 ActiveDocument。“对象浏览器”底部会显示文字,表明 ActiveDocument 是只读的,该属性返回 Document 对象。然后单击“对象浏览器”底部的 Document,则会在“类”列表中自动选定 Document 对象,并将在“成员”列表中显示 Document 对象的成员。滚动成员列表,找到 Close,单击 Close 方法。“对象浏览器”窗口底部会显示文字,说明该方法的语法。有关该方法的详细内容,请按 F1 (作者注:不把 F1 磨平,VBA 很
11、难真正掌握-)或单击“帮助”按钮,以跳转到 Close 方法的“帮助”主题。根据这些信息可编写下列指令,以关闭活动文档。Sub CloseDocSaveChanges()ActiveDocument.Close SaveChanges:=wdSaveChangesEnd Sub关闭并保存改变。这里显然,保存为方法,后面有参数下列示例将活动文档窗口最大化。Sub MaximizeDocumentWindow()ActiveDocument.ActiveWindow.WindowState = wdWindowStateMaximizeEnd Sub这个是赋最大化值属性给活动窗口ActiveWin
12、dow 属性返回一个 Window 对象,该对象代表活动窗口。将 WindowState 属性设为最大常量(wdWindowStateMaximize)。下列示例新建一篇文档,并显示“另存为”对话框,这样即可为文档提供一个名称。Sub CreateSaveNewDocument()Documents.Add.SaveEnd Sub这个有意思,添加新文档并保存,一步,利害吧如果不是看帮助,你敢这么用吗?方法.方法Documents 属性返回 Documents 集合。Add 方法新建一篇文档,并返回一个 Document 对象。然后对 Document 对象应用 Save 方法。如上所示,可以使
13、用方法或属性来访问下层对象。也就是说,在对象结构中,将方法或属性应用于某个对象的上一级对象,可返回该下级对象。返回所需对象之后,就可以应用该对象的方法并控制其属性。要查看对象结构分层的情况,请参阅 Microsoft Word 对象。获得有关对象、方法和属性的“帮助”信息在熟悉 Word 对象模型之前,可以利用一些工具来深入了解对象结构。自动成员列表。(重要)在“Visual Basic 编辑器”中,在对象后面键入句号 (.) 后,即显示可用的属性和方法的列表。例如,如果键入“Application.”,就会显示 Application 对象的方法和属性的下拉列表。 帮助。也可以使用“帮助”找
14、到可应用于对象的属性和方法。“帮助”中的每个对象主题都包含一个“参阅”跳转,以显示该对象的属性和方法列表。在“对象浏览器”或某一模块中按 F1,可跳转到相应的“帮助”主题。 Microsoft Word 对象。该主题阐明在分级结构中 Word 对象的排列方式。在结构图中单击一个对象,可显示相应的“帮助”主题。 对象浏览器。“Visual Basic 编辑器”中的“对象浏览器 ”显示 Word 对象的成员(属性和方法)。-实例:打开 Word 后,按 Alt+F11,出现 VBE 窗口,双击右边的 Thisdocument(当然,放到底下的模块中任一个也行),输入如下内容:Sub autoexe
15、c()Application.Caption = “我爱我家!“End Sub这时,关闭 Word,再打开 Word。你的标题就有“.doc我爱我家!”了!图表 2当然,也可以进一步做成这样:Sub autoexec()Dim aa = MsgBox(“我家我家 “, vbYesNo, “这是一个试验“)If a “小小“ ThenApplication.QuitEnd IfEnd Sub功能就是打开 Word 时,显示此对话框,如果输入的不是小小,就打不开。MsgBox 函数参考:在对话框中显示消息,等待用户单击按钮,并返回一个 Integer 告诉用户单击哪一个按钮。语法MsgBox(pr
16、ompt, buttons , title , helpfile, context)MsgBox 函数的语法具有以下几个命名参数:部分 描述 Prompt 必需的。字符串表达式,作为显示在对话框中的消息。prompt 的最大长度大约为 1024 个字符,由所用字符的宽度决定。如果 prompt 的内容超过一行,则可以在每一行之间用回车符 (Chr(13)、换行符 (Chr(10) 或是回车与换行符的组合 (Chr(13) & Chr(10) 将各行分隔开来。 Buttons 可选的。数值表达式是值的总和,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等。如果省略,
17、则 buttons 的缺省值为 0。 Title 可选的。在对话框标题栏中显示的字符串表达式。如果省略 title,则将应用程序名放在标题栏中。 Helpfile 可选的。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了 helpfile,则也必须提供 context。 Context 可选的。数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。如果提供了 context,则也必须提供 helpfile。 设置值buttons 参数有下列设置值:常数 值 描述 vbOKOnly 0 只显示 OK 按钮。 VbOKCancel 1 显示 OK 及 Cancel
18、 按钮。 VbAbortRetryIgnore 2 显示 Abort、Retry 及 Ignore 按钮。 VbYesNoCancel 3 显示 Yes、No 及 Cancel 按钮。 VbYesNo 4 显示 Yes 及 No 按钮。 VbRetryCancel 5 显示 Retry 及 Cancel 按钮。 VbCritical 16 显示 Critical Message 图标。 VbQuestion 32 显示 Warning Query 图标。 VbExclamation 48 显示 Warning Message 图标。 VbInformation 64 显示 Informatio
19、n Message 图标。 vbDefaultButton 1 0 第一个按钮是缺省值。 vbDefaultButton 2 256第二个按钮是缺省值。 vbDefaultButton 3 512第三个按钮是缺省值。 vbDefaultButton 4 768第四个按钮是缺省值。 vbApplicationModal 0 应用程序强制返回;应用程序一直被挂起,直到用户对消息框作出响应才继续工作。 vbSystemModal 4096 系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。 vbMsgBoxHelpButton 16384 将 Help 按钮添加到消息框 VbM
20、sgBoxSetForeground 65536 指定消息框窗口作为前景窗口 vbMsgBoxRight 524288 文本为右对齐 vbMsgBoxRtlReading 1048576 指定文本应为在希伯来和阿拉伯语系统中的从右到左显示 第一组值 (05) 描述了对话框中显示的按钮的类型与数目;第二组值 (16, 32, 48, 64) 描述了图标的样式;第三组值 (0, 256, 512) 说明哪一个按钮是缺省值;而第四组值 (0, 4096) 则决定消息框的强制返回性。将这些数字相加以生成 buttons 参数值的时候,只能由每组值取用一个数字。注意 这些常数都是 Visual Basi
21、c for Applications (VBA) 指定的。结果,可以在程序代码中到处使用这些常数名称,而不必使用实际数值。返回值常数 值 描述 vbOK 1 OK vbCancel 2 Cancel vbAbort 3 Abort vbRetry 4 Retry vbIgnore 5 Ignore vbYes 6 Yes vbNo 7 No 说明如果对话框显示 Cancel 按钮,则按下 ESC 键与单击 Cancel 按钮的效果相同。如果对话框中有 Help 按钮,则对话框中提供有上下文相关的帮助。但是,直到其它按钮中有一个被单击之前,都不会返回任何值。注意 如果还要指定第一个命名参数以外的
22、参数,则必须在表达式中使用 MsgBox。为了省略某些位置参数,必须加入相应的逗号分界符。一、通过录制宏生成代码如果无法确定要使用的 Visual Basic 方法或属性,可打开宏录制器并进行手动操作。宏录制器会将操作译成 Visual Basic 代码。录制操作完成后,可根据需要修改代码。例如,如果无法确定实现段落缩进的属性或方法,可执行下列操作:1.在“工具”菜单上,指向“宏”,然后单击“录制新宏”。 2.如果需要,可更改默认的宏名称,然后单击“确定”启动录制器。 3.在“格式”菜单上,选定“段落”。 4.更改段落左缩进的值,然后单击“确定”。 5.单击“停止录制”工具栏上的“停止录制”按
23、钮。 6.在“工具”菜单上,指向“宏”,然后单击“宏”。 7.从步骤 2 中选择宏的名称,然后单击“编辑”按钮。 查看 Visual Basic 代码来确定对应于段落左缩进的属性(LeftIndent 属性)。将插入点置于 LeftIndent 之中,并按 F1 或单击“帮助”按钮。在帮助主题中,可以查看示例以及支持 LeftIndent 属性的对象(单击“应用于”)。(从上面可以看出,录制宏是我们认识未知对象的很好方法之一)说明录制的宏使用 Selection 属性返回 Selection 对象。例如,下列指令将所选段落缩进 0.5 英寸。Sub IndentParagraph()Selec
24、tion.ParagraphFormat.LeftIndent = InchesToPoints(0.5)End Sub您也可以修改录制的宏并与 Range 对象一起使用。(我们在日常的使用中经常注意到:在使用“本机上的模板”时的向导就大量使用了 Selection 对象,而不是 Range 对象!难道说微软有更新层次的考虑?我想可能是 Selection 对象更稳定,跨版本能力更强吧!)二、修改录制的 Visual Basic 宏宏录制器是查找所需的 Visual Basic 方法和属性的非常方便的工具。如果不知道使用何种属性或方法,可打开宏录制器,手动执行操作。宏录制器会将操作译为 Vis
25、ual Basic 代码。但录制宏具有一些限制条件。您不能录制下列内容:条件分支 变量指定 循环结构 自定义用户窗体 出错处理 用鼠标选定的文字(必须使用组合键) 若要增强宏的功能,可能需要修改录制到模块中的代码。删除 Selection 属性使用宏录制器创建的宏取决于所选内容。在大多数录制的宏指令的开头,可以看到“Selection”。录制的宏使用 Selection 属性返回 Selection 对象。例如,下列示例将所选内容移动至 Temp 书签,并在书签之后插入文字。Sub Macro1()Selection.Goto What:=wdGotoBookmark, Name:=“Temp
26、“Selection.MoveRight Unit:=wdCharacter, Count:=1相当于选中后按一个键盘的右方向键Selection.TypeText Text:=“New text“End Sub这个宏虽然可以完成任务,但是有一些缺点。首先,如果文档中没有一个名为 Temp 的书签,该宏将导致出错。其次,该宏可能不正确地移动所选内容。修改这个宏,使其不再使用 Selection 对象,就可解决上述两个问题。以下就是经修改后的宏:Sub MyMacro()If ActiveDocument.Bookmarks.Exists(“Temp“) = True Thenendloc =
27、ActiveDocument.Bookmarks(“Temp“).EndActiveDocument.Range(Start:=endloc, _End:=endloc).InsertAfter “New text“_ 就是续行的意思End IfEnd SubExists 方法 用于检查是否存在名为 Temp 的书签。如果找到该书签,则用 End 属性返回该书签结束字符的位置。最后使用 Range 方法返回一个引用书签结束位置的 Range 对象 ,以使用 InsertAfter 方法插入文字。有关定义 Range 对象的详细信息,请参阅处理 Range 对象。使用 WithEnd With可
28、使用 WithEnd With 结构简化引用相同对象的宏指令。例如,在文档顶部添加标题时,将录制下面的宏。Sub Macro1()Selection.HomeKey Unit:=wdStorySelection.TypeText Text:=“Title“Selection.ParagraphAlignment.Alignment = wdAlignParagraphCenterEnd Sub每个指令都使用 Selection 属性返回一个 Selection 对象。可以简化这个宏,这样只需使用一次 Selection 属性。Sub MyMacro()With Selection.HomeKe
29、y Unit:=wdStory.TypeText Text:=“Title“.ParagraphAlignment.Alignment = wdAlignParagraphCenter上面那句是原帮助中的,但肯定是笔误!微软没看出?!.ParagraphFormat.Alignment = wdAlignParagraphCenterEnd WithEnd Sub不使用 Selection 对象也可以完成相同的任务。下面的宏在活动文档的开头使用 Range 对象来完成相同的任务。Sub MyMacro()With ActiveDocument.Range(Start:=0, End:=0).I
30、nsertAfter “Title“.ParagraphAlignment.Alignment = wdAlignParagraphCenter上面那句是原帮助中的,但肯定是笔误!微软没看出?!.ParagraphFormat.Alignment = wdAlignParagraphCenterEnd WithEnd Sub删除不必要的属性如果录制了一个关于在对话框中选择选项的宏,即使只更改一个或两个选项,宏录制器也会记录该对话框中的所有选项的设置。如果不希望更改所有的选项,可从录制的宏中删除不必要的属性。下面录制的宏包含“段落”对话框的一些选项(单击“格式”菜单可显示该对话框的所有信息)。S
31、ub Macro1()With Selection.ParagraphFormat.LeftIndent = InchesToPoints(0) 左缩进 0 英寸.RightIndent = InchesToPoints(0) 右缩进 0 英寸.SpaceBefore = 6 段前距 6 磅.SpaceAfter = 6 段后距 6 磅,下面不写了!.LineSpacingRule = 0.Alignment = wdAlignParagraphLeft.WidowControl = True.KeepWithNext = False.KeepTogether = False.PageBrea
32、kBefore = False.NoLineNumber = False.Hyphenation = True.FirstLineIndent = InchesToPoints(0).OutlineLevel = 10End WithEnd Sub但是,如果只需更改段前和段后间距,可将宏更改为:Sub MyMacro()With Selection.ParagraphFormat.SpaceBefore = 6.SpaceAfter = 6End WithEnd Sub因为只设置了较少的属性,所以简化后的宏运行得更快。运行结果只更改选定段落的段前和段后的间距,所有其他设置都没有改变。(注意:如
33、果你是一个喜欢乱动的人,还是要上面吧,但他的速度肯定没有下面的快,但他的适合环境更大.更所谓“忠“孝“难两全啊-)删除不必要的参数当宏录制器记录一个方法时,会包含所有参数的值。打开名为 Test.doc 的文档时,录制了下面的宏。所得到的宏包含 Open 方法的所有参数。Sub Macro1()Documents.Open FileName:=“C:My DocumentsTest.doc“, _ConfirmConversions:= False, ReadOnly:=False, _AddToRecentFiles:=False, PasswordDocument:=“, _Passwor
34、dTemplate:=“, Revert:=False, _WritePasswordDocument:=“, _WritePasswordTemplate:=“, Format:=wdOpenFormatAutoEnd Sub可以从录制的宏中删除不需要的参数。例如,可以删除所有设置为空字符串的参数(如 WritePasswordDocument:=“),如下所示。Sub MyMacro()Documents.Open FileName:=“C:My DocumentsTest.doc“, _ConfirmConversions:= False, _ReadOnly:=False, AddTo
35、RecentFiles:=False, _Revert:=False, Format:=wdOpenFormatAutoEnd Sub三、自动运行的宏通过为一个宏赋予某个特殊的名称,就可在执行某项操作(例如启动 Word 或打开文档)时自动运行宏。Word 将下列名称识别为自动宏,或称“auto”宏。宏名 运行条件AutoExec 启动 Word 或加载全局模板时AutoNew 每次新建文档时AutoOpen 每次打开已有文档时AutoClose 每次关闭文档时AutoExit 退出 Word 或卸载全局模板时当以下条件之一为真时,将识别代码模块中的自动宏。 模块在自动宏(如 AutoExec
36、)之后命名,并且包含一个名为“Main”的过程。 任何模块中的过程在自动宏之后命名。 与其他宏一样,自动宏也可以保存于 Normal 模板、其他模板或文档中。要让自动宏运行,它必须位于活动文档的 Normal 模板中,或活动文档选用的模板中。唯一例外的是 AutoExec 宏,它只有存储于以下位置时才可自动运行:Normal 模板、通过“模板和加载项”对话框全局加载的模板、或由“Startup”文件夹指定的文件夹中的全局模板。在命名冲突的情况下(多个自动宏名相同),Word 将运行上下文中最近的自动宏。例如,如果同时在文档及其附加的模板中创建了 AutoClose 宏,则仅执行文档中的自动宏。
37、如果在 Normal 模板中创建了 AutoNew 宏,只有当文档或其附加模板中没有名为 AutoNew 的宏时,该自动宏才能运行。(笔者注:简称“就近原则“!)注释 按住 Shift 可以终止自动宏的运行。例如,基于包含 AutoNew 宏的模板新建文档时,按住 Shift 可终止 AutoNew 宏的运行。方法是:按住 Shift,单击(“文件”菜单)“新建”对话框中的“确定”按钮,并在显示新文档前持续按住 Shift。如果运行一个宏时有可能触发自动宏,(这种情况,我没遇过!)可用下列指令终止自动宏的运行:WordBasic.DisableAutoMacros四、修改 Word 命令大多数
38、 Word 命令都可通过转换为宏的方式对其进行修改。例如,可修改“文件”菜单上的“打开”命令,使其不再显示 Word 文档文件列表(扩展名为 .doc 的文件),而显示当前文件夹中的所有文件。若要在“宏”对话框中显示内置 Word 命令列表,可在“宏的位置”框中选定“Word 命令”。显示的命令列表中包含所有的菜单命令、工具栏命令或快捷键命令。菜单命令名称以相关的菜单名称开头。例如,“文件”菜单中的“保存”命令显示为“FileSave”。方法是工具/宏/宏通过将一个宏命名为与 Word 命令相同的名称,就可用宏替代 Word 命令。例如,如果创建一个名为“FileSave”的宏,当选择“文件”
39、菜单上的“保存”命令、单击“保存”工具栏按钮,或按“保存文件”快捷键时,Word 将运行该宏。本示例介绍了修改 FileSave 命令的步骤。1.在“工具”菜单上,指向“宏”,然后单击“宏”。 2.在“宏的位置”框中,选择“Word 命令”。 3.在“宏名”框中,选择“FileSave”。 4.在“宏的位置”框中选择一个模板或文档以保存该宏。例如,选择 Normal.dot(全局模板)可生成一个共用宏(即修改所有文档的“FileSave”命令)。5.单击“创建”按钮。 FileSave 宏显示如下:Sub FileSave() FileSave Macro Saves the active d
40、ocument or templateActiveDocument.SaveEnd Sub可添加指令或删除现有的 ActiveDocument.Save 指令。之后在运行“FileSave”命令时,新的 FileSave 宏将取代 word 命令。若要恢复“FileSave”原有的功能,需重新命名新的 FileSave 宏或将之删除。说明: 也可以创建与 Word 命令同名的代码模块(例如 FileSave)并包含名为 Main 的子程序,以此替换 Word 命令。五、将文本插入文档使用 InsertAfter 或 InsertBefore 方法在 Selection 或 Range 对象之前
41、或之后插入文字。下列示例在活动文档的末尾插入文字。Sub InsertTextAtEndOfDocument()ActiveDocument.Content.InsertAfter Text:=“ The end.“End Sub下列示例在所选内容之前插入文字。Sub AddTextBeforeSelection()Selection.InsertBefore Text:=“new text “End SubRange 对象或 Selection 对象在使用了 InsertBefore 或 InsertAfter 方法之后,会扩展并包含新的文本。使用 Collapse 方法可以将 Select
42、ion 或 Range 折叠到开始或结束位置。六、选定文档中的文本可使用 Select 方法选定文档中的对象。Select 方法可用于多种对象,例如 Bookmark、Field、Range 和 Table 对象。下列示例选定活动文档中的第一个表格。Sub SelectTable()ActiveDocument.Tables(1).SelectEnd Sub下列示例选定活动文档中的第一个域。Sub SelectField()ActiveDocument.Fields(1).SelectEnd Sub下列示例选定活动文档中的前四个段落。Range 方法用于创建一个引用前四个段落的 Range 对
43、象,然后将 Select 方法应用于 Range 对象。Sub SelectRange()Dim rngParagraphs As RangeSet rngParagraphs = ActiveDocument.Range( _Start:=ActiveDocument.Paragraphs(1).Range.Start, _End:=ActiveDocument.Paragraphs(4).Range.End)rngParagraphs.SelectEnd Sub选定文档中的文本:我觉得用处不大,原因就是为什么要选中呢?能操作就直接操作,不能的话,就选中吧(他可以说是没办法的办法).七、编辑
44、文字本主题包含与下列任务相关的 Visual Basic 示例: 确定文本是否被选定 折叠选定内容或区域 扩展选定内容或区域 重新定义 Range 对象 更改文本 有关其他编辑任务的信息和示例,请参阅下列主题:从文档返回文本 选定文档中的文本 将文本插入文档 修改文档的某一部分 确定文本是否被选定Selection 对象的 Type 属性返回所选内容类型的信息。如果所选内容为插入点,则下列示例显示一条消息“Nothing is Selected“。没选中任何问题Sub IsTextSelected()If Selection.Type = wdSelectionIP Then MsgBox “
45、Nothing is selected“End Sub折叠所选内容或区域使用 Collapse 方法可将 Selection 或 Range 对象折叠到开始或结束点的位置。下列示例在所选内容的开头将所选内容折叠为一个插入点。Sub CollapseToBeginning()Selection.Collapse Direction:=wdCollapseStartSelection.Collapse Direction:=wdCollapseEndEnd Sub这个是标准的折叠的程序,以后可能会用到的噢!下列示例将区域折叠至其结束点(在第一个单词之后),并添加新文本。Sub CollapseTo
46、End()Dim rngWords As RangeSet rngWords = ActiveDocument.Words(1) 设置第一个单词为区域rngWordsWith rngWords.Collapse Direction:=wdCollapseEnd 折叠到最后,区域与可以折叠的噢!.Text = “(This is a test.) “ 在折叠的最后加入这些文字End WithEnd Sub扩展所选内容或区域下列示例使用 MoveEnd 方法扩展所选内容的结尾以包含三个附加的单词(总共是 4 个!)。MoveLeft、MoveRight、MoveUp 和 MoveDown 方法也可
47、以用于扩展 Selection 对象。Sub ExtendSelection()Selection.MoveEnd Unit:=wdWord, Count:=3End Sub下列示例使用 MoveEnd 方法扩展区域,以包含活动文档中的前三个段落。Sub ExtendRange()Dim rngParagraphs As RangeSet rngParagraphs = ActiveDocument.Paragraphs(1).RangerngParagraphs.MoveEnd Unit:=wdParagraph, Count:=2End Sub重新定义 Range 对象使用 SetRang
48、e 方法可重新定义现有的 Range 对象。更改文字通过更改某一区域中的内容可更改现有的文字。下列指令通过将 Text 属性设为“The”来更改活动文档中的第一个单词。Sub ChangeText()ActiveDocument.Words(1).Text = “The “End Sub也可以使用 Delete 方法删除现有文本,然后使用 InsertAfter 或 InsertBefore 方法插入新文本。下列示例删除活动文档的第一段,并插入新文本。Sub DeleteText()Dim rngFirstParagraph As RangeSet rngFirstParagraph = Ac
49、tiveDocument.Paragraphs(1).RangeWith rngFirstParagraph.Delete.InsertAfter Text:=“New text“.InsertParagraphAfterEnd WithEnd Sub上面的这个例子我们通常不用,我们更喜欢用下面Sub DeleteText1()Dim rngFirstParagraph As RangeSet rngFirstParagraph = ActiveDocument.Paragraphs(1).RangerngFirstParagraph.Text = “New text“ & Chr(13)End Sub八、将格式应用于文本本主题包含与下列任务相关的 Visual Basic 示例: 将格式应用于选定内容 将格式应用于某一区域 插入文本并应用字符和段落格式 在 12 磅和无之间切换段前间距 切换加粗格式 将左边距增加 0.5 英寸 将格式应用于选定内容下列示例使用 Selection 属性将字符和段落格式应用于选定文本。使用 Font