2009-10-13 7 views
3

Est-ce que quelqu'un sait comment détecter l'utilisation des polices de thème dans les objets de diapositives Powerpoint 2007 en utilisant VBA? Si l'on regarde Shape.TextFrame.TextRange.Font.Name le nom de la police apparaît comme nom simple (ex: "Arial") si la police a été assignée comme un nom fixe ou un nom de thème (sujet à changer avec le thème du document). Je ne vois aucune autre propriété dans le modèle objet qui marquerait le nom comme lié à un thème (tel que ObjectThemeColor pour les couleurs).Comment détecter les polices de thème dans Powerpoint 2007 VBA?

Merci!

Répondre

1

Il n'y a pas de méthode directe (que je connais), mais vous pouvez vérifier avec un If/Then:

Sub checkthemeFont() 
    Dim s As Shape 
    Set s = ActivePresentation.Slides(1).Shapes(1) 
    Dim f As Font 
    Set f = s.TextFrame.TextRange.Font 

    Dim themeFonts As themeFonts 
    Dim majorFont As ThemeFont 

    Set themeFonts = ActivePresentation.SlideMaster.Theme.ThemeFontScheme.MajorFont 
    Set majorFont = themeFonts(msoThemeLatin) 

    If f.Name = majorFont Then 
     Debug.Print f.Name 
    End If 
End Sub 
+0

Merci Otaku pour la réponse, mais je pense que cela ne vous indique si le nom de la police correspond à la Nom du thème, pas si la police de cette forme est contrôlée par le paramètre de thème. Vous pouvez le voir dans l'interface graphique en sélectionnant le texte, en cliquant avec le bouton droit de la souris et en sélectionnant l'une des 2 premières polices dans la section "Polices de thème" (Les rubriques de thème et les polices de corps). Puis ajoutez une autre forme mais sélectionnez le même nom de police dans la liste ci-dessous (la section "Toutes les polices"). Le nom de la police semble identique pour les deux objets. Changez le thème et vous verrez le changement de police de la première forme mais pas la seconde. –

+0

Gotcha. Oui, c'est un dur. La seule chose que j'ai pu trouver était le contraire de ce dont vous avez besoin, c'est comment * définir * les polices de thème (http://pptfaq.com/FAQ00957.htm). Les obtenir de l'objet en tant que propriété de l'objet ne semble pas avoir de documentation. –

+0

Oui, je l'ai trouvé aussi, mais je n'ai jamais été capable d'attraper des noms de police comme "+ mj-It" comme le mentionne Steve dans l'article, juste des noms de police vanille ... –

Questions connexes