2009-06-08 6 views
5

Ich versuche, VBA verwenden Sie einen Text in eine Powerpoint einfügen TextRange, ich so etwas wie folgt verwenden:Anwenden Schriftformatierung zu Powerpoint Text Programatically

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

Allerdings kann ich nicht herausfinden, wie fett anzuwenden , kursiv und programmatisch unterstreichen (ich sehe keine .RichText-Eigenschaft oder etwas Ähnliches).

Was ich habe, ist ein einfacher HTML-Text mit fettem, kursivem und unterstrichenem Text, den ich konvertieren möchte.

Weiß jemand, wie man das macht?

+0

Ich denke, dass ich alle Ihre Bedenken in meiner bearbeiteten Antwort unten angesprochen habe. –

+0

versuchen herauszufinden, wie Sie Ihr Beispiel in meinem Skript zum Arbeiten bringen können. Ich denke, das (Start: = 2, Länge: = 3) wirft VBScript ab, obwohl es in VBA zu funktionieren scheint (mein Fehler - ich hätte VBScript verwenden sollen). Sieht so aus als ob es funktionieren sollte, obwohl was für ein Schmerz - ich wünschte sie hätten einen besseren Weg als diesen implementiert. Wird zurückschreiben, sobald ich in der Lage bin, es nach Bedarf zu arbeiten. Vielen Dank - – OneNerd

+0

Ich habe Ihren Beitrag neu geschrieben, um anzuzeigen, dass Sie VBScript verwenden. Bin interessiert zu wissen, wie Sie dieses Problem lösen. –

Antwort

7

Diese leicht mit der TextRange ‚s Characters, erreicht wird Words, Sentences, Runs und Paragraphs Objekte und es ist dann Font Objekt Fett, Unterstrichen und Kursiv gesetzt (unter anderen Eigenschaften). Zum Beispiel:

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

Versuchen Sie, MSDN's documentation auf der TextRange object betrachten. Es enthält Beispiele zum Zugreifen auf die Font-Eigenschaften des TextRange-Objekts.

EDIT: Sie können Dinge zugreifen wie Fett- und Kursivschrift programmatisch auf diese Weise:

TextRange.Font.Bold = msoTrue 

EDIT EDIT: Es gibt mehrere Methoden, mit denen Sie nur bestimmtem Text in einem Textbereich auswählen können. Siehe folgende:

Nach der sames von this link, können Sie einen Teil des Textes wählen Sie eine dieser Methoden verwenden und Legen Sie die Schriftart programmgesteuert fest. Zum Beispiel:

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

Dieses Beispiel stammt aus dem Link Words Method.

+1

Soweit ich das beurteilen kann, adressiert das den gesamten Textbereich, nicht einzelne Wörter innerhalb des Textbereichs. – OneNerd

3

Zusätzlich zu der obigen Antwort sollten Sie versuchen, die Objekte zu benennen, die Sie ändern werden, da die Auswahl von ihnen mitten in einer Präsentation PowerPoint seltsam wirken lassen könnte. Erstellen Sie ein neues TextRange-Objekt und legen Sie es wie folgt fest.

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

Ja - das mache ich schon (erleichtert das Arbeiten mit Objekten). Vielen Dank - – OneNerd

Verwandte Themen