修改文档的某一部分

Visual Basic 包括可用于修改以下文档元素的对象:字符、字词、句子、段落和节。 下表包含与这些文档元素对应的属性以及这些属性返回的对象。

表达式 返回的对象
字词 ( 索引) Range
字符 ( 索引) Range
句子 ( 索引) Range
段落 ( 索引) Paragraph
( 索引)

如果使用这些属性时不带索引,则返回一个具有相同名称的集合对象。 例如, Paragraphs 属性返回 Paragraphs 集合对象。 但是如果通过索引序号标识这些集合中的一项,则返回表的第二列中的对象。 例如, Words(1) 返回 一个 Range 对象。 有了一个 Range 对象之后,可以使用任何区域属性或方法修改该 Range 对象。 例如,下面的指令将所选内容中的第一个单词复制到剪贴板。

Sub CopyWord() 
    Selection.Words(1).Copy 
End Sub

注意ParagraphsSections 集合中的项是集合的单一形式,特别是 Paragraph 对象和 Section 对象,而不是 Range 对象。 事实上,Word 对象模型中的大多数集合都具有可用于的单一窗体对象。 但可以从 Paragraph 对象和 Section 对象以及大部分属于集合的子成员的其他对象中使用 Range 属性(返回 Range 对象)。 例如,下面的指令将活动文档的第一段复制到剪贴板。

Sub CopyParagraph() 
    ActiveDocument.Paragraphs(1).Range.Copy 
End Sub

上述表格中的所有文档元素属性对 DocumentSelectionRange 对象都可用。 以下示例演示如何从 DocumentSelectionRange 对象向下钻取到这些属性。 下面的示例设置活动文档中第一个单词的大小写。

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

StartEnd 属性与 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。