2009-06-08 6 views
5

Je suis en train d'utiliser VBA pour insérer du texte dans une présentation PowerPoint TextRange, j'utiliser quelque chose comme ceci:Appliquer la police mise en forme de texte PowerPoint Programatically

ActiveWindow.Selection.SlideRange.Shapes("rec1").TextFrame.TextRange.Text = "Hi" 

Cependant, je ne peux pas comprendre comment appliquer des caractères gras , italique et souligné par programme (je ne vois pas de propriété .RichText ou quelque chose de similaire).

Ce que j'ai, c'est du texte HTML simple avec du texte gras, italique et souligné que je voudrais convertir.

Est-ce que quelqu'un sait comment faire cela?

+0

Je pense avoir répondu à toutes vos préoccupations dans ma réponse éditée ci-dessous. –

+0

en essayant de comprendre comment obtenir votre exemple pour travailler dans mon script. Je pense que le (Démarrer: = 2, Longueur: = 3) est en train de quitter VBScript, bien qu'il semble fonctionner dans VBA (ma faute - aurait dû préciser que j'utilisais VBScript). On dirait que ça devrait fonctionner, mais quelle douleur - je souhaite qu'ils ont mis en œuvre un meilleur moyen que cela. Va poster une fois que je suis capable de le faire fonctionner au besoin. Merci - – OneNerd

+0

J'ai modifié votre message pour indiquer que vous utilisez VBScript. Suis intéressé de savoir comment vous résolvez ce problème. –

Répondre

7

Ceci est facilement accompli en utilisant les objets Characters de TextRange, Words, Sentences, Runs et Paragraphs puis il est Font objet pour définir Gras, Souligné et italique (entre autres propriétés). Par exemple:

Sub setTextDetails() 
    Dim tr As TextRange 
    Set tr = ActiveWindow.Selection.SlideRange.Shapes(1).TextFrame.TextRange 
     With tr 
      .Text = "Hi There Buddy!" 
      .Words(1).Font.Bold = msoTrue 
      .Runs(1).Font.Italic = msoTrue 
      .Paragraphs(1).Font.Underline = msoTrue 
     End With 
End Sub 
4

Essayez de regarder MSDN's documentation sur le TextRange object. Il contient des exemples d'accès aux propriétés Font de l'objet TextRange.

EDIT: Vous pouvez accéder à des choses comme Italique et Gras programme de cette manière:

TextRange.Font.Bold = msoTrue 

EDIT EDIT: Il existe plusieurs méthodes par lesquelles vous pouvez sélectionner uniquement certains textes dans une plage de texte. Voir les éléments suivants:

Selon les sames de this link, vous pouvez sélectionner une partie du texte en utilisant une de ces méthodes et Définir la police par programme. Par exemple:

Application.ActiveDocument.Pages(1).Shapes(2) _ 
.TextFrame.TextRange.Words(Start:=2, Length:=3) _ 
.Font.Bold = True 

Cet exemple a été extrait du lien Méthode de mots.

+1

autant que je peux dire, qui adresse la gamme de texte ENTIER, pas des mots individuels à l'intérieur de la gamme de texte. – OneNerd

3

En plus de la réponse ci-dessus, vous devriez essayer de nommer les objets que vous serez en train de changer, car les sélectionnant au milieu d'une présentation pourrait faire agir PowerPoint curieusement. Créez un nouvel objet TextRange et définissez-le comme ceci.

dim mytextrange As TextRange 
Set mytextrange = ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange 
mytextrange.Words... 
+0

Ouais - je le fais déjà (il est plus facile de travailler avec des objets). Merci - – OneNerd

Questions connexes