TextFrame.AutoSize 不适合自动

问题描述 投票:0回答:1

我在 PowerPoint 中使用 VBA。

我执行了以下代码,但 AutoSize 不起作用。

一个页面被创建,标题和文本框被创建到这个页面中。 文本框不会自动适合。

请帮助我。

Sub page_create()
    Dim myPresentation As Presentation
    Dim mySlide As Slide
    
    Set myPresentation = ActivePresentation
    'There are 1st slide before!!
    Set mySlide = myPresentation.Slides.Add(2, ppLayoutTitleOnly)
    mySlide.Shapes.Title.TextFrame.TextRange.Text = "Examples"
    Set prevShape = mySlide.Shapes(mySlide.Shapes.Count)
    Set myTextbox = mySlide.Shapes.AddTextbox(msoTextOrientationHorizontal, prevShape.Left, prevShape.Top + prevShape.Height, 0, 0)
    
    myTextbox.TextFrame.AutoSize = ppAutoSizeShapeToFitText
    myTextbox.TextFrame.TextRange.Text = "list, set, int, float, str, tuple"

我改变了后面句子的顺序,但是没有用。

myTextbox.TextFrame.AutoSize = ppAutoSizeShapeToFitText
myTextbox.TextFrame.TextRange.Text = "list, set, int, float, str, tuple"

我参考了这个

vba powerpoint autosize
1个回答
0
投票

添加

myTextbox.TextFrame.WordWrap = True
对我有用。


Sub page_create()


    Dim myPresentation As Presentation
    Dim mySlide As Slide
    
    Set myPresentation = ActivePresentation
    'There are 1st slide before!!
    Set mySlide = myPresentation.Slides.Add(2, ppLayoutTitleOnly)
    mySlide.Shapes.Title.TextFrame.TextRange.Text = "Examples"
    Set prevShape = mySlide.Shapes(mySlide.Shapes.Count)
    Set myTextbox = mySlide.Shapes.AddTextbox(msoTextOrientationHorizontal, prevShape.Left, prevShape.Top + prevShape.Height, 0, 0)
    
    myTextbox.TextFrame.AutoSize = ppAutoSizeShapeToFitText
    myTextbox.TextFrame.WordWrap = True 'here
    myTextbox.TextFrame.TextRange.Text = "list, set, int, float, str, tuple"
    
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.