【问题标题】:Simulating "Increase Font Size" in PowerPoint VBA在 PowerPoint VBA 中模拟“增加字体大小”
【发布时间】:2015-09-29 18:15:50
【问题描述】:

在 PowerPoint 中,如果我选择了多种大小的文本,我可以点击“增大字体大小”或“减小字体大小”让每个 TextRange 增大/缩小一个“步长”:

我几乎有一个手动的解决方案如下:

Sub GrowText(ByRef t_range as TextRange)
    Dim sub_range as TextRange
    For Each sub_range in SplitBySizes(t_range)
        sub_range.Font.size = NextSize(sub_range.Font.size)
    Next sub_range
End Sub

NextSize 函数使用静态数组(8, 9, 10, 10.5, 11, 12, 14, 16, 18, 20, 24, 28, 32, 26, 40, 44, 48, 54, 60, 66, 72, 80, 88, 96) 来查找下一个最大的字体大小,我知道如何实现它。我不知道该怎么做是实现SplitBySizes,它应该返回一个ArrayTextRange 对象,其文本大小相同。有没有办法做到这一点而不逐个字符循环?我最终会将此代码移动到 COM 应用程序中。

【问题讨论】:

    标签: vba com powerpoint textrange


    【解决方案1】:

    尝试基于此的东西:

    For each sub_range in t_range.Runs
    

    格式与前一个文本不同的每一位文本都是一个运行。

    【讨论】:

      【解决方案2】:

      你也可以试试

        Application.CommandBars.ExecuteMso ("FontSizeIncrease")
      

      你会想要添加一些错误检查

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-26
        • 2011-09-05
        • 2010-09-20
        • 1970-01-01
        • 2022-11-14
        • 2018-07-16
        • 2015-02-01
        相关资源
        最近更新 更多