Shapes.Range, méthode (PowerPoint)
Renvoie un objet ShapeRange qui représente un sous-ensemble des formes d’une 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 | Facultatif | Variant | Les formes individuelles qui doivent être incluses dans la plage. Il peut s’agir d’un entier qui spécifie le numéro d’index de la forme, d’une chaîne qui spécifie le nom de la forme ou d’un tableau qui contient des entiers ou des chaînes. Si cet argument est omis, la méthode Range renvoie tous les objets de la collection spécifiée. |
Valeur renvoyée
ShapeRange
Remarques
Bien que vous puissiez utiliser la méthode Range pour renvoyer un nombre quelconque de formes ou de diapositives, il est plus simple d’utiliser la méthode Item si vous ne souhaitez renvoyer qu’un seul membre de la collection. Par exemple, Shapes(1)
est plus simple que Shapes.Range(1)
et Slides(2)
est plus simple que Slides.Range(2)
.
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 myArray() As Variant, myRange As Object myArray = Array("Oval 4", "Rectangle 5") Set myRange = ActivePresentation.Slides(1).Shapes.Range(myArray)
Exemple
Cet exemple permet de définir le motif de remplissage des formes 1 et 3 dans myDocument.
Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes.Range(Array(1, 3)).Fill _
.Patterned msoPatternHorizontalBrick
Cet exemple montre comment définir le motif de remplissage des formes intitulées Oval 4 et Rectangle 5 dans la première diapositive.
Dim myArray() As Variant, myRange As Object
myArray = Array("Oval 4", "Rectangle 5")
Set myRange = ActivePresentation.Slides(1).Shapes.Range(myArray)
myRange.Fill.Patterned msoPatternHorizontalBrick
Cet exemple montre comment définir le motif de remplissage de toutes les formes de la première diapositive.
ActivePresentation.Slides(1).Shapes.Range.Fill _
.Patterned Pattern:=msoPatternHorizontalBrick
Cet exemple montre comment définir le motif de remplissage de la forme 1 dans la première diapositive.
Set myDocument = ActivePresentation.Slides(1)
Set myRange = myDocument.Shapes.Range(1)
myRange.Fill.Patterned msoPatternHorizontalBrick
Cet exemple montre comment créer une matrice qui contient toutes les formes automatiques de la première diapositive, définir un groupe de formes à partir de cette matrice, puis répartir horizontalement toutes les formes du groupe.
With myDocument.Shapes
numShapes = .Count
'Continues if there are shapes on the slide
If numShapes > 1 Then
numAutoShapes = 0
ReDim autoShpArray(1 To numShapes)
For i = 1 To numShapes
'Counts the number of AutoShapes on the Slide
If .Item(i).Type = msoAutoShape Then
numAutoShapes = numAutoShapes + 1
autoShpArray(numAutoShapes) = .Item(i).Name
End If
Next
'Adds AutoShapes to ShapeRange
If numAutoShapes > 1 Then
ReDim Preserve autoShpArray(1 To numAutoShapes)
Set asRange = .Range(autoShpArray)
asRange.Distribute msoDistributeHorizontally, False
End If
End If
End With
Voir aussi
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.