Pregunta

He estado trabajando en un pequeño truco con Power Point para crear automáticamente una forma de cuadro de texto con algún efecto preestablecido en el que el texto se obtiene dinámicamente del portapapeles. Aquí tengo un problema tranquilo, la funcionalidad funciona bien con el siguiente script VB con macros.

Sub ReadFromFile()

' CLIPBOARD
Dim MyData As DataObject
Dim strClip As String

' CLIPBOARD
Set MyData = New DataObject
MyData.GetFromClipboard
strClip = MyData.GetText

Set activeDocument = ActivePresentation.Slides(1)


 With activeDocument
        'Set QASlide = .Slides.Add(Index:=.Slides.Count + 0, Layout:=ppLayoutBlank)

        activeDocument.Shapes.AddTextEffect PresetTextEffect:=msoTextEffect28, _
        Text:=strClip, _
        FontName:="Garde Gothic", FontSize:=44, FontBold:=msoTrue, _
        FontItalic:=msoFalse, Left:=25, Top:=25

        With .Shapes(.Shapes.Count)
        .Width = 200
        .Height = 300
        End With

 End With

End Sub

¿Puede alguien ayudarme a proporcionar el script para envolver el texto dentro de la forma que tiene un ancho y altura definidos como en el código anterior?

¿Fue útil?

Solución

No estoy seguro si te entiendo bien, pero agrega .TextFrame.WordWrap = msoTrue al bloque a continuación resuelve su problema?

    With .Shapes(.Shapes.Count)
    .Width = 200
    .Height = 300
    End With

Otros consejos

Creo que estás buscando esto:

.Shapes(.Shapes.Count).TextFrame.TextRange.Text = strClip

Puedes configurarlo en el mismo With que estás estableciendo la altura y el ancho

Si desea que el texto envuelva dentro de una forma, tendrá que usar algo más que una forma de textEffect.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top