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

Objet Shapes

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.