Word VBA 学习交流资料
目录
八、将格式应用于文本
一、对象模型
打开Word VBA帮助,首先看到的是“Word的对象模型”(如下所示)
图表 1
知识点:知道Application对象(Word应该程序的总对象)、Doctuments对象(文档集对象)、Paragraphs对象(段落集)、Selection(选中区域)对象、Tables(表格)对象、Sections(节,即Word的第一节)对象、Headers(页眉)对象。
二、新增功能
(略)
1 / 114
原因:我们的初衷大多是从“零”开始,最基础的我们都不知道,何来“新增”啊?
但是,以后学到相关的知识时,会跳到这里,学一些新增的“对象”、“方法”、“事件”、“属性”等。
三、编程概念
对象是 Visual Basic 的结构基础,在 Visual Basic 中进行的所有操作几乎都与修改对象有关。Microsoft Word 的任何元素,如文档、表格、段落、书签、域等,都可用 Visual Basic 中的对象来表示。
什么是对象和集合?
对象代表一个 Word 元素,如文档、段落、书签或单独的字符。集合也是一个对象,该对象包含多个其他对象,通常这些对象属于相同的类型;例如,一个集合对象中可包含文档中的所有书签对象。通过使用属性和方法,可以修改单独的的对象,也可修改整个的对象集合。
例如:
ActiveDocument.Paragraphs(2).Range.Characters(1).Font.Color = wdColorRed
在Word 的VBA中,大多数对象都是通过Application来访问,但有几个可以直接访问:如activedocumnet、documents等,当然通过application对象也行,但无疑后者更简略。
什么是属性?
属性是对象的一种特性或该对象行为的一个方面。例如,文档属性包含其名称、内容、保存状态以及是否启用修订。若要更改一个对象的特征,可以修改其属性值。
若要设置属性的值,可在对象的后面紧接一个句号、属性名称、一个等号及新的属性值。下列示例在名为“MyDoc.doc”的文档中启用修订。
Sub TrackChanges()
2 / 114
Documents(\End Sub
在本例中,Documents 引用由打开的文档(注意是对打开后文档的操作)构成的集合,而“MyDoc.doc”标识集合中单独的文档。并设置该文档的 TrackRevisions 属性。
不能设置某些属性。属性的“帮助”主题中会标明可以设置该属性(可读写),或只能读取该属性(只读)。
通过返回对象的一个属性值,可以获取有关该对象的信息。下列示例返回活动文档的名称。
Sub GetDocumentName() Dim strDocName As String
strDocName = ActiveDocument.Name MsgBox strDocName End Sub
(这个例子输出的没有路径,只有名字.若带路径的话,把strDocName = ActiveDocument.Name改为:strDocName = ActiveDocument.Path & ActiveDocument.Name)
在本例中,ActiveDocument 引用 Word 活动窗口中的文档。该文档的名称赋给了 strDocName 变量。
说明:每个属性的“帮助”主题表明可以设置该属性(可读写),只能读取该属性(只读),或只能写入该属性(只写)。此外“Visual Basic 编辑器”中的“对象浏览器”在浏览窗口的底部显示所选属性的读写状态。
什么是方法?
方法是对象可以执行的动作。例如,只要文档可以打印,Document 对象就具有 PrintOut 方法。方法通常带有参数,以限定执行动作的方式。下列示例打印活动文档的前三页。
Sub PrintThreePages()
3 / 114
ActiveDocument.PrintOut Pages:=\
End Sub
Range:=wdPrintRangeOfPages,
在大多数情况下,方法是动作,而属性是性质。使用方法将导致发生对象的某些事件(所以,有人说:“方法是集成了的事件”),而使用属性则会返回对象的信息,或引起对象的某个性质的改变。
返回一个对象
可通过返回集合中单独的对象的方式来返回大多数对象。例如 Documents 集合包含打开的 Word 文档。可使用(位于 Word 对象结构顶层的)Application 对象的 Documents 属性返回 Documents 集合。
在访问集合之后,可以通过在括号中使用索引序号(与处理数组的方式相似)返回单独的对象。索引序号通常是一个数值或名称。详细内容,请参阅返回集合中的对象。
下列示例使用 Documents 属性访问 Documents 集合。索引序号用于返回 Documents 集合中的第一篇文档。然后将 Close 方法应用于 Document 对象,关闭 Documents 集合中的第一篇文档。
Sub CloseDocument() Documents(1).Close End Sub
'这个可能以后大多不用,原因就是索引序号在变,当打开、关闭一个文档时,对应的序号就增加或减少了数字,所以不好把握,大多不用。
下列示例使用名称(指定为一个字符串)来识别 Documents 集合中的 Document 对象。
Sub CloseSalesDoc()
Documents(\End Sub
'这个常用,让某个指定的文档关闭。
4 / 114
集合对象通常具有可用于修改整个对象集合的方法和属性。Documents 对象具有 Save 方法,可用于保存集合中的所有文档。下列示例通过使用 Save 方法保存所有打开的文档。
Sub SaveAllOpenDocuments() Documents.Save End Sub
'所有的文档保存,相当于按住Shift再点击文件下的全部保存命令。
Document 对象也可使用 Save 方法保存单独的文档。下列示例保存名为 Sales.doc 的文档。
Sub SaveSalesDoc()
Documents(\End Sub
'对指定的文档保存。
若要返回一个处于 Word 对象结构底层的对象,就必须使用可返回对象的属性和方法,“深入”到该对象。
若要查看该过程的执行,请打开“Visual Basic 编辑器”,在“视图”菜单上单击“对象浏览器”。单击左侧“类”列表中的 Application。然后单击右侧“成员”列表中的 ActiveDocument。“对象浏览器”底部会显示文字,表明 ActiveDocument 是只读的,该属性返回 Document 对象。然后单击“对象浏览器”底部的 Document,则会在“类”列表中自动选定 Document 对象,并将在“成员”列表中显示 Document 对象的成员。滚动成员列表,找到 Close,单击 Close 方法。“对象浏览器”窗口底部会显示文字,说明该方法的语法。有关该方法的详细内容,请按 F1 (作者注:不把F1磨平,VBA很难真正掌握^-^)或单击“帮助”按钮,以跳转到 Close 方法的“帮助”主题。
5 / 114
Word-VBA-学习交流资料(全)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)