在 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)来查找下一个最大的字体大小,我知道如何实现它。我不知道该怎么做是 implement SplitBySizes,它应该返回一个带有相同大小文本Array的对象。TextRange有没有办法做到这一点而不逐个字符循环?我最终会将此代码移动到 COM 应用程序中。