Shapes.Range-Methode (Publisher)
Gibt ein Objekt ShapeRange zurück, das eine Teilmenge der Formen in einer Sammlung Shapes repräsentiert.
Syntax
Ausdruck. Bereich (Index)
expression Eine Variable, die ein Shapes-Objekt darstellt.
Parameter
Name | Erforderlich/Optional | Datentyp | Beschreibung |
---|---|---|---|
Index | Erforderlich | Variant | Die einzelnen Formen, die in dem Bereich enthalten sein sollen. Eine ganze Zahl kann sein, die die Indexnummer des das Shape, eine Zeichenfolge, die den Namen der Form angibt, oder ein Array mit ganzen Zahlen oder Zeichenfolgen angibt. Wenn Index nicht angegeben wird, gibt die Range-Methode alle Objekte in der angegebenen Auflistung zurück. |
Rückgabewert
ShapeRange
Beispiel
Um für Index ein Array aus Ganzzahlen und Zeichenfolgen festzulegen, können Sie die Funktion Array verwenden. So gibt z. B. die folgende Anweisung zwei per Namen spezifizierte Formen zurück.
Dim arrShapes As Variant
Dim shpRange As ShapeRange
Set arrShapes = Array("Oval 4", "Rectangle 5")
Set shpRange = ActiveDocument.Pages(1) _
.Shapes.Range(arrShapes)
Dieses Beispiel legt das Füllmuster für die Formen 1 und 3 der aktiven Publikation fest.
ActiveDocument.Pages(1).Shapes.Range(Array(1, 3)).Fill _
.Patterned msoPatternHorizontalBrick
Dieses Beispiel legt das Füllmuster für die Formen namens "Oval 4" und "Rectangle 5" auf der ersten Seite fest.
Dim arrShapes As Variant
Dim shpRange As ShapeRange
arrShapes = Array("Oval 4", "Rectangle 5")
Set shpRange = ActiveDocument.Pages(1).Shapes.Range(arrShapes)
shpRange.Fill.Patterned msoPatternHorizontalBrick
Dieses Beispiel legt das Füllmuster für alle Formen auf der ersten Seite fest.
ActiveDocument.Pages(1).Shapes _
.Range.Fill.Patterned msoPatternHorizontalBrick
Dieses Beispiel legt das Füllmuster für Form 1 auf der ersten Seite fest.
Dim shpRange As ShapeRange
Set shpRange = ActiveDocument.Pages(1).Shapes.Range(1)
shpRange.Fill.Patterned msoPatternHorizontalBrick
Dieses Beispiel erstellt ein Array, das alle AutoFormen auf der ersten Seite enthält, verwendet dieses Array zur Definition eines Formenbereichs und verteilt dann alle Formen horizontal in diesem Bereich.
Dim numShapes As Long
Dim numAutoShapes As Long
Dim autoShpArray As Variant
Dim intLoop As Integer
Dim shpRange As ShapeRange
With ActiveDocument.Pages(1).Shapes
numShapes = .Count
If numShapes > 1 Then
numAutoShapes = 0
ReDim autoShpArray(1 To numShapes)
For intLoop = 1 To numShapes
If .Item(intLoop).Type = msoAutoShape Then
numAutoShapes = numAutoShapes + 1
autoShpArray(numAutoShapes) = .Item(intLoop).Name
End If
Next
If numAutoShapes > 1 Then
ReDim Preserve autoShpArray(1 To numAutoShapes)
Set shpRange = .Range(autoShpArray)
shpRange.Distribute _
DistributeCmd:=msoDistributeHorizontally, _
RelativeTo:=False
End If
End If
End With
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.