Excel 2010 — как очистить раскрывающийся список RibbonX?

Excel 2010 — как очистить раскрывающийся список RibbonX?

Я пытаюсь очистить выбор раскрывающегося списка с помощью кода VBA в Excel 2010. Причина, по которой я хочу это сделать, заключается в том, что событие onAction не срабатывает, если вы последовательно нажимаете на один и тот же элемент без предварительного переключения на другой элемент.

Я немного покопался и прочитал, что метод InvalidateControl очищает кэшированное значение элемента управления. Поэтому я реализовал его и...

Sub getUIHandle(ribbon As Office.IRibbonUI)
    Set MyRibbon = ribbon
End Sub
----
Sub LabelCallback(control As IRibbonControl, id As String, index As Integer)

    Select Case id
        Case "CH1"
            ' take some action
        Case "CH2"
            ' take some action
        Case "CH3"
            ' take some action
        Case "CH4"
            ' take some action
    End Select

MyRibbon.InvalidateControl (control.id)
End Sub

Я отследил вызовы и знаю, что вызывается моя подпрограмма getUIHandle и что вызывается вызов InvalidateControl. Он просто не делает элемент управления недействительным : )

Существует ли метод, очищающий текущее выбранное значение элемента управления dropDown RibbonX?

РЕДАКТИРОВАТЬ:

Я переработал код и изменил подпрограмму LabelCallback, чтобы задать переменную состояния, и чтобы отдельная кнопка на ленте фактически запускала процедуры «выполнить какое-то действие», чтобы обойти это. Неэлегантно, на мой взгляд. (Смею ли я сказать, неуклюже?) Гораздо разумнее выполнять действие, когда выбран элемент dropBox, и это работало бы прекрасно, если бы событие срабатывало независимо от того, какой элемент выбран.

Связанный контент