Shapes.Range Method (Word)
Returns a ShapeRange object that represents the shapes within a range.
expression Required. A variable that represents a 'Shapes' collection.
|Index||Required||Variant||Specifies which shapes are to be included in the specified range. Can be an integer that specifies the index number of a shape within the Shapes collection, a string that specifies the name of a shape, or a array that contains integers or strings.|
A Shape object always appears on the same page as the range it is anchored to.
Note Most operations that you can do with a Shape object you can also do with a ShapeRange object that contains a single shape. Some operations, when performed on a ShapeRange object that contains multiple shapes, produce an error.
This example sets the fill foreground color to purple for the first shape in the active document.
Sub ShRange() With ActiveDocument.Shapes.Range(1).Fill .ForeColor.RGB = RGB(255, 0, 255) .Visible = msoTrue End With End Sub
This example applies a shadow to a variable shape in the active document.
Sub ShpRange2(strShpName As String) ActiveDocument.Shapes.Range(strShpName).Shadow.Type = msoShadow6 End Sub
To call the preceding subroutine, enter the following code into a standard code module.
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
This example selects shapes one and three in the active document.
Sub SelectShapeRange() ActiveDocument.Shapes.Range(Array(1, 3)).Select End Sub
This example selects and deletes the shapes in the first shape in the active document. This example assumes that the first shape is a canvas shape.
Sub CanvasShapeRange() Dim rngCanvasShapes As Range Set rngCanvasShapes = ActiveDocument.Shapes(1).CanvasItems.Range(1) rngCanvasShapes.Select rngCanvasShapes.Delete End Sub