У меня есть код, который переключает цвет шрифта выбранного текста с помощью заранее определенных цветов (черный> красный> зеленый> черный и т. д.). Что я действительно хотел бы сделать, так это сделать его более динамичным для любого форматирования, в котором уже находится моя презентация.
Например, если я запускаю макрос для части заголовка слайда, отформатированного как синий, у меня нет хорошего способа вернуться к исходному синему цвету. Я думал о «копировании» форматирования в какую-то переменную, но я не уверен, как точно очистить переменную или сохранить ее на потом.
Что кажется более вероятным, так это создание своего рода «контекстного» поиска. Если я могу посмотреть слева и справа от выделенного текста, может быть некоторая информация о том, каким должен быть цвет текста (поскольку он очень редко должен отличаться в текстовом блоке). Но это быстро выходит за рамки моего ноу-хау.
См. код ниже для текущей настройки.
Sub TextColorSwap()
On Error Resume Next
With ActiveWindow.Selection
If .TextRange.Font.Color = RGB(0, 0, 0) Then
.TextRange.Font.Color = vbRed
ElseIf .TextRange.Font.Color = vbRed Then
.TextRange.Font.Color = RGB(0, 153, 0)
Else
.TextRange.Font.Color = RGB(0, 0, 0)
End If
End With
End Sub
Есть мысли от профи?
-R