Lire en anglais

Partager via


Objet Shape (Project)

Représente un objet dans un rapport Project, tel qu’un graphique, un tableau de rapport, une zone de texte, un dessin de forme libre ou une image.

Remarques

L’objet Shape est membre de la collection Shapes , qui inclut toutes les formes du rapport.

Notes

L’enregistrement de macro pour l’objet Shape n’est pas implémenté. Autrement dit, lorsque vous enregistrez une macro dans Project et que vous ajoutez manuellement une forme ou modifiez des éléments de forme, les étapes d’ajout et de manipulation de la forme ne sont pas enregistrées.

Trois objets représentent des formes : la collection Shapes , qui représente toutes les formes d’un document ; l’objet ShapeRange , qui représente un sous-ensemble spécifié des formes d’un document (par exemple, un objet ShapeRange peut représenter des formes un et quatre sur le document, ou il peut représenter toutes les formes sélectionnées sur le document) ; et l’objet Shape , qui représente une forme unique sur un document. Pour utiliser plusieurs formes simultanément ou des formes faisant partie de la sélection, utilisez une collection ShapeRange.

Utilisez Shapes(Index), où Index est le nom de la forme ou le numéro d’index, pour renvoyer un seul objet Shape .

Exemple

Dans l’exemple suivant, la macro TestTextShape crée une forme de zone de texte, ajoute du texte et modifie le style de forme, le remplissage, le trait, l’ombre et les propriétés de réflexion. La macro FlipShape retourne la forme de haut en bas.

Sub TestTextShape()
    Dim theReport As Report
    Dim textShape As Shape
    Dim reportName As String
    
    reportName = "Simple scalar chart"
    
    Set theReport = ActiveProject.Reports(reportName)
    Set textShape = theReport.Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 30, 300, 100)
    textShape.Name = "TestTextBox"
    
    textShape.TextFrame2.TextRange.Characters.Text = "This is a test. It's only a test. " _
        & "If it had been real information, there would be some real text here."
    textShape.TextFrame2.TextRange.Characters(1, 15).ParagraphFormat.FirstLineIndent = 0
    
    ' Set the font for the first 15 characters to dark blue bold.
    With textShape.TextFrame2.TextRange.Characters(1, 15).Font
        .Fill.Visible = msoTrue
        .Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent5
        .Fill.Transparency = 0
        .Fill.Solid
        .Size = 14
        .Bold = msoTrue
    End With
    
    textShape.ShapeStyle = msoShapeStylePreset42
    
    With textShape.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(255, 255, 0)
        .Transparency = 0
        '.Solid
    End With
   
    With textShape.Line
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorText1
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0
        .Transparency = 0
    End With

    textShape.Shadow.Type = msoShadow22
    textShape.Reflection.Type = msoReflectionType3
End Sub

Sub FlipShape()
    Dim theReport As Report
    Dim theShape As Shape
    Dim reportName As String
    Dim shapeName As String
    
    reportName = "Simple scalar chart"
    shapeName = "TestTextBox"
    
    Set theShape = ActiveProject.Reports(reportName).Shapes(shapeName)

    theShape.Flip msoFlipVertical
    theShape.Select
End Sub

La figure 1 montre le résultat, où la forme est sélectionnée pour rendre disponible l’onglet FORMAT du ruban sous OUTILS DE DESSIN , bien que l’onglet actif soit CRÉATION sous OUTILS DE RAPPORT. Si la forme n’est pas sélectionnée, OUTILS DESSIN et l’onglet FORMAT ne sont pas visibles.

Figure 1. Test du modèle objet de forme

Test du modèle objet de forme

Méthodes

Propriétés

Voir aussi

Objet Report ObjectChart

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.