Partager via


Objet ShapeRange (Publisher)

Représente une plage de formes, constituée d'un ensemble de formes sur un document. Une plage de formes peut contenir d'une à toutes les formes d'un document. Vous pouvez inclure les formes souhaitées (choisies parmi toutes les formes du document ou toutes les formes de la sélection) pour construire une plage de formes. Par exemple, vous pouvez construire une collection ShapeRange qui contient les trois premières formes dans un document, toutes les formes sélectionnées dans un document ou toutes les formes libres d'un document.

Remarque

[!REMARQUE] La plupart des opérations que vous pouvez faire avec un objet Shape, vous pouvez également faire avec un objet ShapeRange qui contienne une seule forme. Certaines opérations, lorsqu’elles sont effectuées sur un objet ShapeRange qui contient plusieurs formes, provoquent une erreur.

Remarques

Utilisez Shapes.Range (index), où index est le numéro d’index de la forme ou un tableau qui contient les numéros d’index des formes, pour renvoyer une collection ShapeRange qui représente un ensemble de formes dans une composition. Utilisez la fonction Array de Visual Basic pour construire un tableau de numéros d’index.

Bien que vous puissiez utiliser la méthode Shapes.Range pour renvoyer un nombre quelconque de formes, il est plus simple d’utiliser la méthode Item si vous souhaitez renvoyer un seul membre de la collection. Par exemple, Shapes (1) est plus simple que Shapes.Range (1).

Utilisez Selection.ShapeRange (index), où index est le numéro d’index de la forme, pour renvoyer un objet Shape qui représente une forme dans une sélection.

Utilisez la méthode Align , la méthode Distribute ou la méthode ZOrder pour positionner un ensemble de formes les unes par rapport aux autres ou par rapport au document.

Utilisez la méthode Group , la méthode Regroup ou la méthode Ungroup pour créer et utiliser une seule forme formée à partir d’une plage de formes. La propriété GroupItems renvoie l’objet GroupShapes , qui représente toutes les formes regroupées pour former une seule forme.

Exemple

L'exemple suivant définit le motif de remplissage des formes une à trois de la composition active.

Sub ChangeFillPattern() 
    ActiveDocument.Pages(1).Shapes.Range(Array(1, 2, 3)) _ 
        .Fill.PresetGradient Style:=msoGradientDiagonalDown, _ 
        Variant:=1, PresetGradientType:=msoGradientHorizon 
End Sub

L'exemple suivant sélectionne les deux premières formes sur la première page de la composition active et puis définit le remplissage de la première forme de la sélection.

Sub ChangeFillForShapeRange() 
    ActiveDocument.Pages(1).Shapes.Range(Array(1, 2)).Select 
    Selection.ShapeRange(1).Fill.ForeColor.RGB = RGB(255, 0, 0) 
End Sub

Cet exemple montre comment sélectionner toutes les formes de la première page de la composition active, puis ajouter et mettre en forme du texte dans la deuxième forme de la plage.

Sub SelectShapesOnPageOne() 
    ActiveDocument.Pages(1).Shapes.Range.Select 
    With Selection.ShapeRange(2).TextFrame.TextRange 
        .Text = "Shape Number 2" 
        .ParagraphFormat.Alignment = pbParagraphAlignmentCenter 
        .Font.Size = 25 
    End With 
End Sub

Cet exemple spécifie une plage de formes et aligne à gauche et distribue verticalement les formes sur la page.

Sub AlignDistributeShapes() 
    Dim rngShapes As ShapeRange 
    Set rngShapes = ActiveDocument.Pages(1).Shapes.Range 
 
    With rngShapes 
        .Align AlignCmd:=msoAlignLefts, RelativeTo:=msoFalse 
        .Distribute DistributeCmd:=msoDistributeVertically, RelativeTo:=msoTrue 
    End With 
End Sub

Cet exemple spécifie une plage de formes et aligne à gauche et distribue verticalement les formes sur la page.

Sub GroupShapes() 
    Dim rngShapes As ShapeRange 
    Set rngShapes = ActiveDocument.Pages(1).Shapes.Range 
    rngShapes.Group 
 
    rngShapes(1).Fill.OneColorGradient _ 
        Style:=msoGradientFromCenter, _ 
        Variant:=2, Degree:=1 
End Sub

Méthodes

Propriétés

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.