Utiliser des formes (objets dessin)

Les formes, ou objets dessin, sont représentées par trois objets différents : la collection Shapes, la collection ShapeRange et l’objet Forme. Les formes (ou objets dessinés) sont représentées par trois objets différents : la collection Shapes , la collection ShapeRange et l’objet Shape . En général, la collection Shapes est utilisée pour créer des formes ou pour balayer toutes les formes d’une diapositive, l’objet Shape pour modifier une forme unique et la collection ShapeRange pour modifier plusieurs formes (dans ce dernier cas, cela s’apparente à travailler sur plusieurs formes sélectionnées dans l’interface utilisateur).

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.

Set myDocument = ActivePresentation.Slides(1)
myDocument.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 en une fois. Il existe d’autres opérations que vous ne pouvez effectuer qu’avec une seule forme sélectionnée. Par exemple, vous ne pouvez modifier le texte dans une forme que 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 sécuritaire qu’une méthode ou une propriété particulière puisse être appliquée à chaque forme d’une collection ShapeRange, ne l’appliquez pas à 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.

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 contenant les formes automatiques nommées « Big Star » et « Little Star » sur myDocument, et leur applique un remplissage dégradé.

Set myDocument = ActivePresentation.Slides(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. S’il existe plus d’une forme dans la collection, une erreur d’exécution se produit. 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 si vous ne pouvez pas effectuer une même opération sur plusieurs formes à la fois dans l’interface utilisateur en les sélectionnant et en utilisant une commande, vous pouvez le faire en programmation : effectuez une boucle sur la collection Shapes ou sur la collection ShapeRange contenant les formes avec lesquelles vous voulez travailler et appliquez les propriétés et les méthodes appropriées à chaque objet Shape individuel de la collection. L’exemple suivant montre comment effectuer une boucle sur toutes les formes de L’exemple suivant parcourt toutes les formes sur myDocument et ajoute du texte à chaque forme automatique.

Set myDocument = ActivePresentation.Slides(1) 
For Each sh In myDocument.Shapes 
    If sh.Type = msoAutoShape Then 
        sh.TextFrame.TextRange.InsertAfter " (version 1)" 
    End If 
Next

L’exemple suivant construit ShapeRange collection de sites qui contient toutes les formes actuellement sélectionnées dans la fenêtre active et définit le texte dans chaque forme dans la collection de sites peut contenir du texte.

For Each sh in ActiveWindow.Selection.ShapeRange
    If sh.HasTextFrame Then
        sh.TextFrame.TextRange = "Initially selected"
    End If
Next

Alignement, distribution et regroupement de formes dans une plage de formes

Utilisez le aligner et distribuer méthodes pour positionner un ensemble de formes par rapport à l’autre ou par rapport au document contenant les. Utilisez le groupe méthode ou regrouper méthode pour former une seule forme groupée à partir d’un ensemble de formes.

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.