Word VBA教程:修改文档的某一部分

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

表达式 返回的对象
Words(index) Range
Characters(index) Range
Sentences(index) Range
Paragraphs(index) Paragraph
Sections(index) Section

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


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

注意  ParagraphsSections集合中的项是该集合的单个成员,而不是 Range对象。但是(返回 Range对象的)Range属性对 Paragraph 和 Section对象都可用。例如,下列指令将活动文档的第一段复制到“剪贴板”。


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

上述表格中的所有文档元素属性对 Document、Selection 和 Range对象都可用。下列示例阐明了如何使用DocumentSelection 和 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对象的StartEnd属性可创建一个新的 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)
End Sub

有关定义 Range对象的详细信息,请参阅处理 Range对象

Word VBA教程

Word VBA参考教程:目录1 Word VBA参考教程:目录2
Word VBA参考教程:目录3 Word VBA参考教程:目录4
Word VBA参考教程:目录5 Word VBA参考教程:目录6
Word VBA参考教程:目录7 Word VBA参考教程:目录8
Word VBA参考教程:目录9 Word VBA参考教程:目录10
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号