首页 > 解决方案 > 在所有 powerpoint 文本框上设置“溢出时收缩文本”选项的 VBA 代码

问题描述

我正在搜索一个 VBA 代码,它为 PowerPoint 文档中的所有文本框激活“溢出时收缩文本”选项。我试过这个:

Sub Change() 
  Dim oSlide As Slide 
  Dim oShape As Shape 
  For Each oSlide In ActivePresentation.Slides
    For Each oShape In oSlide.Shapes 
      oShape.TextFrame2.AutoSize = MsoAutoSize.msoAutoSizeTextToFitShape    
    Next oShape  
  Next oSlide   
End Sub

但不幸的是,这不起作用。我是一个非常初学者。
任何想法 ?
谢谢你。

标签: vbapowerpoint

解决方案


只需使用msoAutoSizeTextToFitShape而不是 MsoAutoSize.msoAutoSizeTextToFitShape。首先检查形状是否真的有一个文本框也很好。这个版本也获得了组内的形状:

Sub Change()
    Dim oSlide As Slide
    Dim oShape As Shape
    Dim oSubShape As Shape
    
    For Each oSlide In ActivePresentation.Slides
        For Each oShape In oSlide.Shapes
            If oShape.Type = msoGroup Then
                For Each oSubShape In oShape.GroupItems
                    If oSubShape.HasTextFrame Then
                        oSubShape.TextFrame2.AutoSize = msoAutoSizeTextToFitShape
                    End If
                Next oSubShape
            Else
                If oShape.HasTextFrame Then
                    oShape.TextFrame2.AutoSize = msoAutoSizeTextToFitShape
                End If
            End If
        Next oShape
    Next oSlide
End Sub

推荐阅读