VBA - Power Point - Обтекание текста в Shape программно - PullRequest
0 голосов
/ 11 января 2012

Я работал над небольшим взломом с помощью Power Point, чтобы автоматически создать форму текстового поля с некоторым заданным эффектом, при котором текст динамически выбирается из буфера обмена.У меня есть небольшая проблема здесь, функциональность прекрасно работает со следующим 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

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

Ответы [ 3 ]

0 голосов
/ 12 января 2012

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

    With .Shapes(.Shapes.Count)
    .Width = 200
    .Height = 300
    End With
0 голосов
/ 13 января 2012

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

0 голосов
/ 11 января 2012

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

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

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

...