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.