摘要:
关键字: WORD
目录
- 文档模型
- 操作
- 文件操作
- 内容操作
- 段落操作
- 字符操作
- 实例
- 在ACCESS中操作WORD完成题库设计
- 总结
文档模型
Application 对象包含 Document、Selection、Bookmark 和 Range 对象。Word 提供了数百个您可与之交互的对象。以下各部分简要描述顶级对象以及它们彼此之间如何进行交互。这些对象包括:
- Application 对象
- Document 对象
- Selection 对象
- Range 对象
- Bookmark 对象
大部分代码是在 ThisDocument 类中编写的,您可以使用 Me 或 this 对象引用来访问 ThisDocument 的成员。例如,为了选择文档中的第一个段落,可以使用下面的代码:
- Me.Paragraphs(1).Range.Select()
Selection 对象
Selection 对象表示当前选择的区域。在 Word 用户界面中执行某项操作(例如,对文本进行加粗)时,应首先选择或突出显示文本,然后应用格式设置。Selection 对象始终存在于文档中。如果未选中任何对象,它表示插入点。此外,它也可以是不连续的多个文本块。
例1: 以paragraph(段落)为操作对象,将文档中的每一段的字号减小一:
如果Word文档中的各段落的字号不尽相同,但段落内部的字号都相同,则可通过改变段落对象的字号属性来达到我们的目的。打开Word工具菜单的Visu Basic编辑器,键入下列程序:
- Sub paragraph()
- On Error Resume Next
- Dim myParagraph As paragraph
- "对每一段落进行操作
- For Each myParagraph In ActiveDocument.Paragraphs
- "如果该段落中的字号不尽一致或有其它格式,Word段落字号属性的返回值将为99999
- "此时使用段落对象模型不能改变该段落的字号,故退到下一段
- If myParagraph.Range.Font.Size $#@62; 1000 Then Exit For
- "将该段的字号减小一号
- myParagraph.Range.Font.Size = myParagraph.Range.Font.Size – 1
- Next myParagraph
- End Sub
单击运行按钮,便能使Word文档中每一段字号减小一号。同样,若Word文档中每一句、每一个单词甚至每一个字的字号都不尽同,我们可将图1模型中中的Sentences、Words和Characters作为对象进行相应的编程,具体程序段如下。
例2:以Sentences(句子)为对象,将文档中每一句的字号减小一:
Sub sentences()
On Error Resume Next
Dim myParagraph As paragraph
Dim I, J As Integer
For Each myParagraph In ActiveDocument.Paragraphs
"统计每一段中句子总数
J = myParagraph.Range.sentences.Count
For I = 1 To J
"防止同一句中出现不同的字号,具体解释同上
If myParagraph.Range.sentences(I).Font.Size $#@62; 1000 Then Exit For
"将每一句的字号减小一
myParagraph.Range.sentences(I).Font.Size = myParagraph.Range.sentences(I).Font.Size – 1
Next I
Next myParagraph
End Sub
例3: 以Words(单词)为操作对象,将文档中的每一句的字号减小一:
Sub words()
On Error Resume Next
Dim myParagraph As paragraph
Dim I, J As Integer
For Each myParagraph In ActiveDocument.Paragraphs
"统计每一段中总字数
J = myParagraph.Range.words.Count
"将每一个字的字号减小一
For I = 1 To J
myParagraph.Range.words(I).Font.Size = myParagraph.Range.words(I).Font.Size – 1
Next I
Next myParagraph
End Sub
d) 以Characters(单字)为操作对象,将文档中的每一个字的字号减小一:
Sub characters()
On Error Resume Next
Dim myParagraph As paragraph
Dim I, J As Integer
For Each myParagraph In ActiveDocument.Paragraphs
"统计每一段中总字数
J = myParagraph.Range. characters.Count
"将每一个字的字号减小一
For I = 1 To J
myParagraph.Range. characters(I).Font.Size = myParagraph.Range. characters(I).Font.Size – 1
Next I
Next myParagraph
End Sub
Range 对象
Range 对象表示文档中的一个连续的区域,由一个起始字符位置和一个结束字符位置定义。Range 对象的数量并不局限于一个。您可以在同一文档中定义多个 Range 对象。Range 对象具有下面的特性:。
- 它的组成成分可以是单独的插入点,也可以是一个文本范围或整个文档
- 它包含非打印字符,例如空格、制表符和段落标记。
- 它可以是当前选择所表示的区域,也可以表示当前选择之外的区域。
- 与所选内容总是可见不同,它在文档中是不可见的。
- 它不随文档保存,仅存在于代码运行期间。
- 在向一个范围的末尾插入文本时,Word 会自动扩展该范围以包含插入的文本。
Bookmark 对象
文档中的 Microsoft.Office.Interop.Word.Bookmark 是控制文档中的文本的最容易的方法,在这一点上它类似于 Windows 窗体上的文本框控件。Microsoft.Office.Interop.Word.Bookmark 对象表示文档中同时具有起始位置和结束位置的连续区域。书签用于在文档中标记一个位置,或者用作文档中的文本容器。Microsoft.Office.Interop.Word.Bookmark 对象可以小到只有一个插入点,也可以大到整篇文档。Microsoft.Office.Interop.Word.Bookmark 与 Range 对象的不同之处在于它具有以下特点:
- 您可以在设计时命名书签。
- Microsoft.Office.Interop.Word.Bookmark 对象随文档一起保存,因此当代码停止运行或文档关闭时,它不会被删除。
- 书签可以隐藏或变得可见,方法是将 View 对象的 ShowBookmarks 属性设置为 True 或 False。
参考文献