简体   繁体   中英

VBA - Power Point - Wrap text in Shape programmatically

I have been working on a small hack around with Power Point to automatically create a Text Box Shape with some preset effect in which the text is dynamically fetched from clipboard. I have quiet a bit of a problem here, the functionality works fine with the following VB script with 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

Can some one help me in providing the script for wrapping the text inside the shape which has a defined width and height as in the code above?

I think you are looking for this:

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

You can set it in the same With that you are setting the height and width

Not sure if I understand you right but does adding .TextFrame.WordWrap = msoTrue to the block below solve your problem?

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

如果要使文本环绕在形状中,则必须使用文本效果形状以外的其他东西。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM