VBA - Power Point - Text в форме программно
-
26-10-2019 - |
Вопрос
Я работал над небольшим взломом с точкой питания, чтобы автоматически создать форму текстового поля с некоторым заданным эффектом, в котором текст динамически извлекается из буфера обмена. У меня здесь есть небольшая проблема, функциональность прекрасно работает со следующим VB -скриптом с макросами.
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
Может ли кто -нибудь помочь мне предоставить сценарий для обертывания текста внутри формы, которая имеет определенную ширину и высоту, как в коде выше?
Решение
Не уверен, что я понимаю вас правильно, но добавляю добавление .TextFrame.WordWrap = msoTrue
в блоке ниже решить вашу проблему?
With .Shapes(.Shapes.Count)
.Width = 200
.Height = 300
End With
Другие советы
Я думаю, вы ищете это:
.Shapes(.Shapes.Count).TextFrame.TextRange.Text = strClip
Вы можете установить его в то же самое With
что вы устанавливаете высоту и ширину
Если вы хотите, чтобы текст упал в форме, вам придется использовать что -то другое, кроме формы Texteffect.