Shapes.Range, méthode (Publisher)
Renvoie un objet ShapeRange qui représente un sous-ensemble des formes de la collection Shapes.
Syntaxe
expression. Plage (index)
expression Variable qui représente un objet Shapes.
Paramètres
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
Index | Obligatoire | Variant | Les formes individuelles qui doivent être incluses dans la plage. Peut être un entier qui spécifie le numéro d'index de la forme, une chaîne qui spécifie le nom de la forme ou un tableau contenant des entiers ou des chaînes. Si Index est omis, la méthode Range retourne tous les objets de la collection spécifiée. |
Valeur renvoyée
ShapeRange
Exemple
Pour spécifier un tableau d’entiers ou de chaînes pour Index, vous pouvez utiliser la fonction Array. Par exemple, l'instruction suivante renvoie deux formes spécifiées par leur nom.
Dim arrShapes As Variant
Dim shpRange As ShapeRange
Set arrShapes = Array("Oval 4", "Rectangle 5")
Set shpRange = ActiveDocument.Pages(1) _
.Shapes.Range(arrShapes)
Cet exemple définit le motif de remplissage pour les formes un et trois de la composition active.
ActiveDocument.Pages(1).Shapes.Range(Array(1, 3)).Fill _
.Patterned msoPatternHorizontalBrick
Cet exemple définit le motif de remplissage pour les formes « Oval 4 » et « Rectangle 5 » de la première page.
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
Cet exemple définit le motif de remplissage pour toutes les formes de la première page.
ActiveDocument.Pages(1).Shapes _
.Range.Fill.Patterned msoPatternHorizontalBrick
Cet exemple définit le motif de remplissage pour la forme un de la première page.
Dim shpRange As ShapeRange
Set shpRange = ActiveDocument.Pages(1).Shapes.Range(1)
shpRange.Fill.Patterned msoPatternHorizontalBrick
Cet exemple crée un tableau qui contient toutes les formes automatiques de la première page, utilise ce tableau pour définir une plage de formes, puis redispose toutes les formes de cette plage horizontalement.
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
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.