Objet Shapes (Excel)

Collection de tous les objets Shape sur la feuille spécifiée.

Remarques

Chaque objet Shape représente un objet dans la couche de dessin, tel qu’une forme automatique, une forme libre, un objet OLE ou une image.

Remarque

Si vous souhaitez utiliser un sous-ensemble des formes d’un document( par exemple, pour effectuer une opération uniquement pour les formes automatiques du document ou uniquement pour les formes sélectionnées), vous devez construire une collection ShapeRange qui contient les formes que vous souhaitez utiliser.

Exemple

Utilisez la propriété Shapes de l’objet Worksheet pour renvoyer la collection Shapes . L’exemple suivant sélectionne toutes les formes dans myDocument.

Remarque

Si vous souhaitez effectuer une opération (comme supprimer ou définir une propriété) sur toutes les formes d’une feuille en même temps, sélectionnez toutes les formes, puis utilisez la propriété ShapeRange sur la sélection pour créer un objet ShapeRange qui contient toutes les formes de la feuille, puis appliquez la propriété ou la méthode appropriée à l’objet ShapeRange .

Set myDocument = Worksheets(1) 
myDocument.Shapes.SelectAll

Utilisez Shapes (index), où index est le nom ou le numéro d’index de la forme, pour renvoyer un seul objet Shape . L'exemple suivant définit le remplissage sur une teinte prédéfinie pour la forme 1 dans myDocument.

Set myDocument = Worksheets(1) 
myDocument.Shapes(1).Fill.PresetGradient _ 
 msoGradientHorizontal, 1, msoGradientBrass

Utilisez Range (index), où index est le nom ou le numéro d’index de la forme ou un tableau de noms de formes ou de numéros d’index, pour renvoyer une collection ShapeRange qui représente un sous-ensemble de la collection Shapes . Cet exemple permet de définir le motif de remplissage des formes 1 et 3 dans myDocument.

Set myDocument = Worksheets(1) 
myDocument.Shapes.Range(Array(1, 3)).Fill.Patterned _ 
 msoPatternHorizontalBrick

Un contrôle ActiveX dans une feuille a deux noms : le nom de la forme qui le contient (que vous pouvez voir dans la zone Nom lorsque vous affichez la feuille) et le nom de code de ce contrôle (que vous pouvez voir dans la cellule à droite de (Nom) dans la fenêtre Propriétés). Lorsque vous ajoutez un contrôle dans une feuille, le nom de la forme et le nom de code correspondent. Toutefois, si vous modifiez le nom de la forme ou le nom de code, l’autre n’est pas automatiquement modifié pour correspondre.

Vous pouvez utiliser le nom de code d'un contrôle dans le nom de ses procédures événement. Cependant, lorsque vous renvoyez un contrôle de la collection Shapes ou OLEObjects pour une feuille, vous devez utiliser le nom de la forme, non le nom de code, pour faire référence au contrôle par son nom. Par exemple, supposons que vous ajoutiez une case à cocher dans une feuille et que le nom de la forme par défaut et le nom de code par défaut soient CheckBox1. Si vous modifiez ensuite le nom du code de contrôle en entrant chkFinished à côté de (Name) dans la fenêtre Properties, vous devez utiliser chkFinished dans les noms de procédures événementielles, mais vous devez toujours utiliser CheckBox1 pour renvoyer le contrôle à partir de la collection Shapes ou OLEObject, comme l’illustre l’exemple suivant.

Private Sub chkFinished_Click() 
 ActiveSheet.OLEObjects("CheckBox1").Object.Value = 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.