Имитация "Увеличение размера шрифта" в PowerPoint VBA
В 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.
2 ответа
Попробуйте что-то на основе этого вместо этого:
For each sub_range in t_range.Runs
Каждый бит текста с форматированием, отличным от предыдущего текста, является Run.
Вы также можете попробовать
Application.CommandBars.ExecuteMso ("FontSizeIncrease")
Вы хотите добавить некоторые проверки ошибок