2012-01-11 3 views
0

Я работаю над небольшим взломом с Power Point, чтобы автоматически создать форму текстового поля с некоторым предустановленным эффектом, в котором текст динамически извлекается из буфера обмена. У меня здесь немного проблемы, функциональность прекрасно работает со следующим скриптом VB с макросами.VBA - Power Point - обтекает текст в форме программным способом

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 

Может кто-нибудь помочь мне в предоставлении сценарий для оборачивания текста внутри формы, который имеет определенную ширину и высоту, как в приведенном выше коде?

ответ

0

Не уверен, что, если я правильно Вас понял, но это добавление .TextFrame.WordWrap = msoTrue в блок ниже решить вашу проблему?

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

Я думаю, что вы ищете это:

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

Вы можете установить его в том же With, что вы настраиваете высоту и ширину

0

Если вы хотите, чтобы текст обертывался внутри фигуры, вам нужно использовать что-то другое, кроме формы texteffect.

Смежные вопросы