Visual Basic 包含一些对象,可用这些对象修改下列文档元素:字符、单词、句子、段落和节。下表包含与这些文档元素相对应的属性和这些属性返回的对象。
如果使用这些属性时不带索引序号,则返回一个具有相同名称的集合对象。例如,Paragraphs属性返回Paragraphs集合对象。但是如果通过索引序号识别集合中的一项,则返回上表中第二列中的对象。例如,Words(1) 返回一个 Range对象。有了一个 Range对象之后,可以使用任何区域属性或方法修改该 Range对象。例如,下列指令将所选内容的第一个单词复制到“剪贴板”。
Sub CopyWord()
Selection.Words(1).Copy
End Sub
注意 Paragraphs 和Sections集合中的项是该集合的单个成员,而不是 Range对象。但是(返回 Range对象的)Range属性对 Paragraph 和 Section对象都可用。例如,下列指令将活动文档的第一段复制到“剪贴板”。
Sub CopyParagraph()
ActiveDocument.Paragraphs(1).Range.Copy
End Sub
上述表格中的所有文档元素属性对 Document、Selection 和 Range对象都可用。下列示例阐明了如何使用Document、Selection 和 Range对象的这些属性。
下列示例设置活动文档中第一个单词的大小写。
Sub ChangeCase()
ActiveDocument.Words(1).Case = wdUpperCase
End Sub
下列示例将当前节的下边距设为 0.5 英寸。
Sub ChangeSectionMargin()
Selection.Sections(1).PageSetup.BottomMargin = InchesToPoints(0.5)
End Sub
下列示例将活动文档的字符间距设为两倍(Content属性返回一个 Range对象)。
Sub DoubleSpaceDocument()
ActiveDocument.Content.ParagraphFormat.Space2
End Sub
修改一组文档元素
若要修改由一组文档元素(字符、单词、句子、段落或节)组成的某区域的文字,需要创建一个 Range对象。Range方法根据开始和结束位置可创建 Range对象。例如,下列指令创建一个 Range对象,该对象引用活动文档的前十个字符。
Sub SetRangeForFirstTenCharacters()
Dim rngTenCharacters As Range
Set rngTenCharacters = ActiveDocument.Range(Start:=0, End:=10)
End Sub
使用 Range对象的Start 和End属性可创建一个新的 Range对象,该对象引用一组文档元素。例如,下列指令创建一个引用活动文档中前三个单词的 Range对象 (myRange)。
Sub SetRangeForFirstThreeWords()
Dim docActive As Document
Dim rngThreeWords As Range
Set docActive = ActiveDocument
Set rngThreeWords = docActive.Range(Start:=docActive.Words(1).Start, _
End:=docActive.Words(3).End)
End Sub
下列示例创建一个 Range对象(aRange),该对象从第二段的开头开始,在第三段之后结束。
Sub SetParagraphRange()
Dim docActive As Document
Dim rngParagraphs As Range
Set docActive = ActiveDocument
Set rngParagraphs = docActive.Range(Start:=docActive.Paragraphs(2).Range.Start, _
End:=docActive.Paragraphs(3).Range.End)