Darle formato a un cuadro de texto (shape textbox) en PowerPoint usando VBA.

En PowerPoint para darle formato a un cuadro de texto (shape textbox) requieres acceder a los métodos de los objetos: “Paragraphs”, “Words”, “Lines”, “Sentences” o “Characters” -> párrafos, palabras, líneas, oraciones o letras. El primer elemento es uno (1) no cero (0).

Ejemplos:

Para cambiar el color de la letra a amarillo para la primera pálabra:

.Words(1).Font.Color = vbYellow

Para cambiar el color de la letra a rojo para las primeras 10 letras:

.Characters(1, 10).Font.Color = vbRed

Para cambiar el color de la letra a azul para la segunda línea:

.Lines(2).Font.Color = vbBlue

Ten en cuenta: un párrafo está delimitado por un salto de carro o el uso de vbNewLine. Si tienes un texto como este:

"A" + vbNewLine + vbNewLine + "B"

Entonces tienes 3 párrafos: párrafo A, B y el que está entre los 2 vbNewLines es un párrafo también.

formatting

La imagen de arriba fue creada utlizando el siguiente código:

Public Sub Custom()
    Dim p1 As String, p2 As String
    p1 = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod " & _
         "tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, " & _
         "quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." & _
         "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat" & _
         "nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia" & _
         "deserunt mollit anim id est laborum
    p2 = "_________________________" & vbNewLine & "Signature"
    Dim sld As Slide
    Dim shp As Shape
    Set sld = Application.ActiveWindow.View.Slide
    Set shp = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 30, 650, 140)
    With shp.TextFrame.TextRange
        .Font.Name = "Arial"
        .Font.Size = 12
        .ParagraphFormat.Alignment = ppAlignJustify
        'Set the text
        .Text = p1 & vbNewLine & vbNewLine & _
                p1 & vbNewLine & vbNewLine & _
                p1 & vbNewLine & vbNewLine & _
                vbNewLine & p2
        'Space between lines set to 1.5
        .Lines.ParagraphFormat.SpaceWithin = 1.5
        .Paragraphs(1).Font.Bold = msoTrue
        .Paragraphs(1).Font.Color = vbBlue
        .Paragraphs(3).Font.Bold = msoFalse
        .Paragraphs(3).Font.Color = vbGreen
        .Paragraphs(5).Font.Bold = msoTrue
        .Paragraphs(5).Font.Color = vbRed
        'Signature Line
        .Paragraphs(8).Font.Size = 16
        .Paragraphs(8).Font.Bold = msoTrue
        .Paragraphs(8).ParagraphFormat.Alignment = ppAlignCenter
        'Signature
        .Paragraphs(9).Font.Size = 16
        .Paragraphs(9).Font.Bold = msoTrue
        .Paragraphs(9).Font.Italic = msoTrue
        .Paragraphs(9).ParagraphFormat.Alignment = ppAlignCenter
    End With
End Sub

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s