在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
,它应该返回Array
个TextRange
个具有相同大小的文本的对象。有没有办法在不逐个字符的情况下循环?我最终会将此代码移动到COM应用程序中。
答案 0 :(得分:1)
尝试基于此的内容:
For each sub_range in t_range.Runs
格式与上一个文本不同的每个文本位都是Run。
答案 1 :(得分:1)
您也可以尝试
Application.CommandBars.ExecuteMso ("FontSizeIncrease")
您需要添加一些错误检查