VBA - Power Point - envolver el texto en forma mediante programación
-
26-10-2019 - |
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?
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.