Objet Shapes
L'objet formes automatiques (Shapes)
Sub proc_forme_automatique()
' Afficher le contenu de la cellule A1 dans une forme automatique.
On sélectionne la forme et on saisie, dans la barre des formule, la formule =A1
' Récupère le texte d'une forme automatique
MsgBox ActiveSheet.Shapes("Forme automatique 1").TextFrame.Characters.Text
'Ecrire du texte dans une forme
ActiveSheet.Shapes("Forme automatique 1").TextFrame.Characters.Text = "Hello tous le monde"
ActiveSheet.Shapes("Forme automatique 1").TextFrame.HorizontalAlignment = xlCenter
ActiveSheet.Shapes("Forme automatique 1").TextFrame.Characters.Font.Bold = True
'Ajouter une nouvelle forme et un texte (voir la propriété MsoAutoShapeType)
With Worksheets("Feuil1").Shapes.AddShape(msoShapeRoundedRectangle, 40, 80, 140,50)
.Name = "MaForme"
.TextFrame.Characters.Text = "Le texte dans la forme"
End With
'Supprimer toutes les formes
ActiveSheet.Shapes.SelectAll
Selection.Delete
'De la couleur de fond (de 1 à 80 par défaut 9 - blanc )
' ou bien avec Fill.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("Forme automatique 1").Fill.ForeColor.SchemeColor = 50
' Couleur du cadre
ActiveSheet.Shapes("Forme automatique 1").Line.ForeColor.SchemeColor = 60
End Sub
' Afficher le contenu de la cellule A1 dans une forme automatique.
On sélectionne la forme et on saisie, dans la barre des formule, la formule =A1
' Récupère le texte d'une forme automatique
MsgBox ActiveSheet.Shapes("Forme automatique 1").TextFrame.Characters.Text
'Ecrire du texte dans une forme
ActiveSheet.Shapes("Forme automatique 1").TextFrame.Characters.Text = "Hello tous le monde"
ActiveSheet.Shapes("Forme automatique 1").TextFrame.HorizontalAlignment = xlCenter
ActiveSheet.Shapes("Forme automatique 1").TextFrame.Characters.Font.Bold = True
'Ajouter une nouvelle forme et un texte (voir la propriété MsoAutoShapeType)
With Worksheets("Feuil1").Shapes.AddShape(msoShapeRoundedRectangle, 40, 80, 140,50)
.Name = "MaForme"
.TextFrame.Characters.Text = "Le texte dans la forme"
End With
'Supprimer toutes les formes
ActiveSheet.Shapes.SelectAll
Selection.Delete
'De la couleur de fond (de 1 à 80 par défaut 9 - blanc )
' ou bien avec Fill.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("Forme automatique 1").Fill.ForeColor.SchemeColor = 50
' Couleur du cadre
ActiveSheet.Shapes("Forme automatique 1").Line.ForeColor.SchemeColor = 60
End Sub
Pour plus d'infos, voir Developpez.com et Developpez.com