VBA - Powerpoint - 以编程方式将Shape中的文本换行

时间:2012-01-11 05:01:51

标签: vb.net vba powerpoint powerpoint-vba

我一直在与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 :(得分:0)

我认为你正在寻找这个:

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

您可以在设置高度和宽度的同一With中进行设置

答案 1 :(得分:0)

我不确定我是否理解你,但是在下面的块中添加.TextFrame.WordWrap = msoTrue可以解决您的问题吗?

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

答案 2 :(得分:0)

如果要将文本包装在形状中,则必须使用texteffect形状以外的其他内容。