Что я пытаюсь заставить работать:
- активировать команду Text Highlight Color с помощью клавиш (не проблема)
- циклически перебирает 5 по умолчанию Цвет выделения текста с помощью одной и той же привязки клавиш (или просто выделения выделения, в зависимости от selection.type, проверенного вне функции ниже)
- отображение текущего цвета в соответствующей кнопке (встроенная лента)
Где я застрял:
Sub cycleThroughSomeDefaultHighlightColorIndexOptions()
Dim zeNewColor As Long
Select Case Options.DefaultHighlightColorIndex
Case wdYellow: zeNewColor = wdBrightGreen
Case wdBrightGreen: zeNewColor = wdTurquoise
Case wdTurquoise: zeNewColor = wdPink
Case wdBlue: zeNewColor = wdRed
Case wdRed: zeNewColor = wdYellow
Case Else: zeNewColor = wdYellow
End Select
Application.Options.DefaultHighlightColorIndex = zeNewColor
End Sub
не выдает никакой ошибки, изменяет Application.Options.DefaultHighlightColorIndex,
, но не обновляет / не показывает вновь установленный цвет на соответствующей кнопке (вкладка встроенной ленты)
и просто выходит из режима Цвет подсветки текста.
Есть ли возможность сохранить его?
Если его нужно запустить снова: есть ли лучший способ, чем
грязный / мешающий sendKeys для вызова таких команд, как выделение текста
Цвет
Обновление 2019-04-03:
В то же время я нашел, где перечислены IRibbonUI.InvalidateControlMso ControlID
: Файлы справки Office 2016: Идентификаторы управления пользовательским интерфейсом Office Fluent
Так что после создания скрытой пользовательской ленты и получения ручки для нее в onLoad я мог zeWdRibbon.InvalidateControlMso "TextHighlightColorPicker"
без каких-либо возникших ошибок.
Но это тоже ничего не меняет.
Возможно ли, что Microsoft просто получает изображения по умолчанию, например "TextHighlightColorPicker" (желтый), не проверяя Application.Options.DefaultHighlightColorIndex, или я что-то упустил?