Visual Basic 包括可用于修改以下文档元素的对象:字符、字词、句子、段落和节。 下表包含与这些文档元素对应的属性以及这些属性返回的对象。
表达式 | 返回的对象 |
---|---|
字词 ( 索引) | Range |
字符 ( 索引) | Range |
句子 ( 索引) | Range |
段落 ( 索引) | Paragraph |
节 ( 索引) | 节 |
如果使用这些属性时不带索引,则返回一个具有相同名称的集合对象。 例如, Paragraphs 属性返回 Paragraphs 集合对象。 但是如果通过索引序号标识这些集合中的一项,则返回表的第二列中的对象。 例如, Words(1)
返回 一个 Range 对象。 有了一个 Range 对象之后,可以使用任何区域属性或方法修改该 Range 对象。 例如,下面的指令将所选内容中的第一个单词复制到剪贴板。
Sub CopyWord()
Selection.Words(1).Copy
End Sub
注意Paragraphs 和 Sections 集合中的项是集合的单一形式,特别是 Paragraph 对象和 Section 对象,而不是 Range 对象。 事实上,Word 对象模型中的大多数集合都具有可用于的单一窗体对象。 但可以从 Paragraph 对象和 Section 对象以及大部分属于集合的子成员的其他对象中使用 Range 属性(返回 Range 对象)。 例如,下面的指令将活动文档的第一段复制到剪贴板。
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
将 Start 和 End 属性与 Range 对象一起使用,可以创建引用一组文档元素的新 Range 对象。 例如,以下指令创建一个 Range 对象 ( rngThreeWords
) ,该对象引用活动文档中的前三个单词。
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 对象, ( rngParagraphs
) 从第二段开头到第三段之后结束。
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)
End Sub
有关定义 Range 对象的详细信息,请参阅处理 Range 对象。
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。