2009-06-08 13 views
5

Estoy tratando de utilizar VBA para insertar un texto en una presentación de PowerPoint TextRange, utilizo algo como esto:Aplicar formato de fuente de texto de PowerPoint Programatically

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

Sin embargo, no puedo encontrar la manera de aplicar negrita , cursiva y subrayado programáticamente (no veo una propiedad .RichText o algo similar).

Lo que tengo es un texto HTML simple con texto en negrita, cursiva y subrayado que me gustaría convertir.

¿Alguien sabe cómo hacer esto?

+0

Creo que he tratado todas sus inquietudes en mi respuesta editada a continuación. –

+0

tratando de averiguar cómo hacer que tu ejemplo funcione en mi script. Creo que el (Inicio: = 2, Longitud: = 3) arroja VBScript, aunque parece funcionar en VBA (mi culpa - debería haber especificado que estaba usando VBScript). Parece que debería funcionar, aunque qué pena. Ojalá implementaran una mejor manera que esto. Volveré a publicar una vez que pueda hacerlo funcionar según sea necesario. Gracias - – OneNerd

+0

Retoqué su publicación para reflejar que está usando VBScript. Me interesa saber cómo resuelves este problema. –

Respuesta

7

Esto se logra fácilmente mediante el uso de Characters, Words, Sentences, Runs y Paragraphs objetos la TextRange 's y entonces es Font objeto para establecer negrita, subrayado y cursiva (entre otras propiedades). Por ejemplo:

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

Intenta mirar MSDN's documentation en el TextRange object. Contiene ejemplos de cómo acceder a las propiedades de fuente del objeto TextRange.

EDIT: Se puede acceder a cosas como negrita y cursiva programación de esta manera: editar

TextRange.Font.Bold = msoTrue 

EDIT: Hay varios métodos por los cuales se puede seleccionar sólo un texto determinado en un intervalo de texto. Consulte la siguiente:

De acuerdo con los Sames de this link, puede seleccionar una parte del texto utilizando uno de estos métodos y establecer la fuente mediante programación. Por ejemplo:

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

Ese ejemplo fue tomado del enlace de Método de Palabras.

+1

por lo que puedo decir, que se ocupa del rango de texto ENTERO, no palabras individuales dentro del rango de texto. – OneNerd

3

Además de la respuesta anterior, debe intentar asignar un nombre a los objetos que va a cambiar, ya que si los selecciona a la mitad de una presentación podría hacer que PowerPoint actúe de manera extraña. Crea un nuevo objeto TextRange y configúralo así.

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

Sí, ya lo hago (hace que trabajar con objetos sea más fácil). Gracias - – OneNerd

Cuestiones relacionadas