Word VBA教程:Range方法

应用于 Document对象的 Range方法。

通过使用指定的开始和结束字符位置,返回一个Range对象。

expression.Range(Start, End)

expression   必需。该表达式返回一个Document对象。

Start  Variant 类型,可选。开始字符位置。

End  Variant 类型,可选。结束字符位置。

应用于 CanvasShapes、GroupShapes 和 Shapes对象的 Range方法。

返回一个ShapeRange对象。

expression.Range(Index)

expression   必需。该表达式返回以上一个对象。

Index  Variant 类型,必需。指定在该范围中包含哪一个图形。可以是一个整数,用以指定在Shapes集合中某个图形的索引号;也可以是指定图形名称的字符串;或者是包含整数或字符串的 Variant 数组。

说明

在文档的开头从 0 开始的字符位置值。计数所有字符,包括非打印字符。隐藏字符也在计数之内,即使该字符并不显示出来。如果不为 Range方法指定开始和结束字符位置,则将整篇文档作为一个 Range对象返回。

ShapeRange对象不包含InlineShape对象。一个 InlineShape对象相当于一个字符,并像字符一样位于一定文字区域中。用Shape对象锁定一定区域的文字(默认情况下是锁定所选内容),但这些对象可以位于该页的任何位置。Shape对象总是与锁定区域处于同一页。

对 Shape对象进行的大部分有效操作也适用于只包含一个图形的 ShapeRange对象。有些操作如果用于包含多个图形的 ShapeRange对象,则会产生错误。

VBA示例

当应用于 Document对象时。

本示例为活动文档中的前 10 个字符设置加粗格式。


Sub DocumentRange()
    ActiveDocument.Range(Start:=0, End:=10).Bold = True
End Sub

本示例创建一个区域,该区域的起点位于活动文档的开始处,终点位于光标的位置,然后将该区域内的所有字符转换为大写。


Sub DocumentRange2()
    Dim r As Range
    Set r = ActiveDocument.Range(Start:=0, End:=Selection.End)
    r.Case = wdUpperCase
End Sub

本示例创建并设置myRange 变量,使其包含活动文档的第三到第六段,然后右对齐该区域中的段落。


Sub DocumentRange3()
    Dim aDoc As Document
    Dim myRange As Range
    Set aDoc = ActiveDocument
    If aDoc.Paragraphs.Count >= 6 Then
        Set myRange = aDoc.Range(aDoc.Paragraphs(2).Range.Start, _
            aDoc.Paragraphs(4).Range.End)
        myRange.Paragraphs.Alignment = wdAlignParagraphRight
    End If
End Sub

当应用于 CanvasShapes、GroupShapes 和 Shapes对象时。

本示例将活动文档第一个图形的填充前景色设置为紫色。


Sub ShRange()
    With ActiveDocument.Shapes.Range(1).Fill
        .ForeColor.RGB = RGB(255, 0, 255)
        .Visible = msoTrue
    End With
End Sub

本示例为活动文档中变量图形应用阴影。


Sub ShpRange2(strShpName As String)
    ActiveDocument.Shapes.Range(strShpName).Shadow.Type = msoShadow6
End Sub

若要调用前一个子程序,请在标准代码模块中输入下列代码。


Sub CallShpRange2()
    Dim shpArrow As Shape
    Dim strName As String
    Set shpArrow = ActiveDocument.Shapes.AddShape(Type:=msoShapeLeftArrow, _
        Left:=200, Top:=400, Width:=50, Height:=75)
    shpArrow.Name = "myShape"
    strName = shpArrow.Name
    ShpRange2 strShpName:=strName
End Sub

本示例选定活动文档的第一和第三个图形。


Sub SelectShapeRange()
    ActiveDocument.Shapes.Range(Array(1, 3)).Select
End Sub

本示例选定并删除活动文档第一个图形中的所有图形。本示例假定第一个图形是画布图形。


Sub CanvasShapeRange()
    Dim rngCanvasShapes As Range
    Set rngCanvasShapes = ActiveDocument.Shapes(1).CanvasItems.Range(1)
    rngCanvasShapes.Select
    rngCanvasShapes.Delete
End Sub

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号