Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les formes, ou objets dessin, sont représentés par trois objets différents :
Objet | Description |
---|---|
Collection Shapes | Permet de créer des formes et d’itérer au sein de toutes les formes d’une feuille de calcul donnée. |
Collection ShapeRange | Utilisez pour modifier plusieurs formes de la même façon que vous utilisez plusieurs formes dans l’interface utilisateur. |
Objet Shape | Utilisez pour mettre en forme ou modifier une seule forme. |
Définition des propriétés pour une forme
De nombreuses propriétés de mise en forme de formes ne sont pas définies par propriétés qui s’appliquent directement à la forme ou ShapeRange objet. Liés à la place, les attributs de forme sont regroupés sous secondaires objets, tels que le FillFormat objet qui contient toutes les propriétés liées à remplissage de la forme, ou le LinkFormat objet, qui contient toutes les propriétés sont spécifiques à des objets OLE liés.
Pour définir des propriétés pour une forme, vous devez tout d’abord renvoyer l’objet qui représente l’ensemble des attributs de forme liés et puis définir les propriétés d’objet renvoyé. Par exemple, vous utilisez le remplissage propriété à retourner la FillFormat objet, puis définir le ForeColor propriété de la FillFormatobjet pour définir la couleur de premier plan de remplissage pour la forme spécifiée, comme illustré dans l’exemple suivant.
Worksheets(1).Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
Application d’une propriété ou méthode à plusieurs formes en même temps
Dans l’interface utilisateur, vous pouvez effectuer certaines opérations avec plusieurs formes sélectionnées ; par exemple, vous pouvez sélectionner plusieurs formes et définir tous leurs remplissages individuels à la fois. Vous pouvez effectuer d’autres opérations avec une seule forme sélectionnée ; Par exemple, vous pouvez modifier le texte d’une forme uniquement si une seule forme est sélectionnée.
Dans Visual Basic, deux méthodes s’offrent à appliquer des propriétés et les méthodes à un ensemble de formes. Ces deux méthodes permettent d’effectuer une opération vous pouvez effectuer sur une seule forme sur une plage de formes, vous pouvez effectuer la même opération dans l’interface utilisateur ou non.
Si l’opération fonctionne sur plusieurs formes sélectionnées dans l’interface utilisateur, vous pouvez effectuer la même opération dans Visual Basic à créer un ShapeRange collection de sites qui contient les formes que vous voulez utiliser et en appliquant la appropriés propriétés et les méthodes directement à la ShapeRange collection de sites.
Si l’opération ne fonctionne pas sur plusieurs formes sélectionnées dans l’interface utilisateur, vous pouvez toujours effectuer l’opération dans Visual Basic en effectuant une boucle via la formes collection de sites ou à un ShapeRange collection de sites qui contient les formes que vous voulez travail avec et en appliquant des méthodes et les propriétés appropriées à la personne forme objets dans la collection.
De nombreuses propriétés et les méthodes qui s’appliquent à la forme objet et ShapeRange collection échouer si appliqué à certains types de formes. Par exemple, le TextFrame propriété échoue si appliqué à une forme qui ne peut pas contenir de texte.
Si vous n’êtes pas certain que chacune des formes d’une collection ShapeRange peut avoir une certaine propriété ou méthode appliquée, n’appliquez pas la propriété ou la méthode à la collection ShapeRange . Si vous voulez appliquer l’un de ces propriétés ou méthodes à une collection de formes, vous devez parcourir la collection de sites et tester chaque forme individuelle afin qu’il ait un type de forme approprié avant d’appliquer la propriété ou la méthode à celui-ci.
Création d’une collection ShapeRange qui contient toutes les formes d’une feuille
Vous pouvez créer un objet ShapeRange contenant tous les objets Shape d'une feuille en sélectionnant les formes puis en utilisant la propriété ShapeRange pour renvoyer un objet ShapeRange contenant les formes sélectionnées.
Worksheets(1).Shapes.Select
Set sr = Selection.ShapeRange
Dans Microsoft Excel, l’argument Index n’étant pas facultatif pour la propriété Range de la collection Shapes , vous ne pouvez pas utiliser cette propriété sans argument pour créer un objet ShapeRange contenant toutes les formes d’une collection Shapes .
Application d’une propriété ou la méthode à une collection ShapeRange
Si vous pouvez effectuer une opération sur plusieurs formes sélectionnées dans l’interface utilisateur en même temps, vous pouvez faire l’équivalent par programme effectuiez une ShapeRange collection de sites et en appliquant ensuite les propriétés appropriées ou méthodes à celui-ci. L’exemple suivant construit une plage de formes qui contient les formes nommées « Big Star » et « Little Star » sur myDocument
et leur applique un remplissage dégradé.
Set myDocument = Worksheets(1)
Set myRange = myDocument.Shapes.Range(Array("Big Star", _
"Little Star"))
myRange.Fill.PresetGradient _
msoGradientHorizontal, 1, msoGradientBrass
Voici des instructions générales pour comment propriétés et les méthodes se comportent lorsqu’ils sont appliqués à une ShapeRange collection de sites.
Application d’une méthode à la collection équivaut à appliquer la méthode à chaque personne forme objet dans cette collection de sites.
Définition de la valeur d’une propriété de la collection équivaut à la définition de la valeur de la propriété de chaque forme individuelle dans cette plage.
Une propriété de la collection renvoyant une constante renvoie la valeur de la propriété d’une forme individuelle dans la collection de si toutes les formes dans la collection d’ont la même valeur pour cette propriété. Si ce n’est pas toutes les formes dans la collection d’ont la même valeur pour la propriété, elle renvoie la constante « mixte ».
Une propriété de la collection qui renvoie un type de données simple (par exemple, Long, unique, ou chaîne) renvoie la valeur de la propriété d’une forme individuelle si toutes les formes dans la collection d’ont la même valeur pour cette propriété.
La valeur de certaines propriétés pouvez renvoyée ou définir uniquement si exactement une forme n’existe dans la collection de sites. Si la collection en contient plusieurs, une erreur d'exécution survient. C’est généralement le cas pour retournant ou en définissant des propriétés de l’action équivalente dans l’interface utilisateur est possible qu’avec une seule forme (actions telles que la modification du texte dans une forme ou les points d’une forme libre).
Les instructions précédentes s’appliquent également lorsque vous définissez les propriétés de formes sont regroupés sous objets secondaires de la ShapeRange collection de sites, tels que le FillFormat objet. Si l’objet secondaire représente des opérations réalisables sur plusieurs objets sélectionnés dans l’interface utilisateur, vous pourrez retourner l’objet à partir d’un ShapeRange collection de sites et définir ses propriétés.
Par exemple, vous pouvez utiliser la remplissage propriété à retourner la FillFormat objet représentant les remplissages de toutes les formes dans le ShapeRange collection de sites. Définir les propriétés de cette FillFormat objet configurera les mêmes propriétés pour toutes les formes individuelles dans la ShapeRange collection de sites.
En boucle via un formes ou d’une collection ShapeRange
Même lorsqu'il est impossible, au moyen de l'interface utilisateur, de réaliser une opération sur plusieurs formes en une seule fois en sélectionnant celles-ci puis en sélectionnant une commande, vous pouvez effectuer l'équivalent par programmation en exécutant une boucle sur une collection Shapes ou ShapeRange contenant les formes sur lesquelles vous voulez travailler puis en appliquant les propriétés et méthodes appropriées aux objets Shape de la collection.
L’exemple suivant effectue une boucle sur toutes les formes et myDocument
modifie la couleur de premier plan de chaque forme de forme automatique.
Set myDocument = Worksheets(1)
For Each sh In myDocument.Shapes
If sh.Type = msoAutoShape Then
sh.Fill.ForeColor.RGB = RGB(255, 0, 0)
End If
Next
L'exemple suivant montre comment créer une collection ShapeRange contenant toutes les formes actuellement sélectionnées dans la fenêtre active puis comment définir la couleur de premier plan de chaque forme sélectionnée.
For Each sh in ActiveWindow.Selection.ShapeRange
sh.Fill.ForeColor.RGB = RGB(255, 0, 0)
Next
Alignement, distribution et regroupement de formes dans un ShapeRange
Utilisez les méthodes Align et Distribute pour positionner un ensemble de formes les unes par rapport aux autres ou par rapport au document qui les contient.
Utilisez la méthode Group ou la méthode Regroup pour former une forme groupée unique à partir d’un ensemble de formes.
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.