Назначение Встроенный элемент управления, но с ошибкой: неправильное количество аргументов или неверное назначение свойства

Я пытался перепрофилировать встроенный элемент управления. Используя похожий код RibbonX и код VBA, я обнаружил, что некоторые элементы управления можно переназначить (например, Paste и FileSave), а некоторые нельзя переназначить (например, Bold и Underline). Сообщение об ошибке было "Неправильное количество аргументов или неверное назначение свойства".

Код лентыX:

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <commands>
        <command idMso="Underline" enabled="false"/>
        <command idMso="Bold" onAction="MyBold"/>
    </commands>
</customUI>

В стандартном модуле VBA:

'Callback for Bold onAction
Sub MyBold(control As IRibbonControl, ByRef cancelDefault)
    MsgBox "Hello"
End Sub

В Excel, когда я щелкнул элемент управления Bold, я получил сообщение об ошибке:

Неверное количество аргументов или неверное назначение свойства

Поиск примеров в Интернете: управляет?forum=worddev" rel="nofollow noreferrer">этим сайтом и другой сайт, не давайте мне никаких подсказок.

Очень ценю ваши мысли. Спасибо.


person kelvin 004    schedule 28.11.2016    source источник


Ответы (1)


У вас неправильная подпись обратного вызова. См. этот документ: https://msdn.microsoft.com/en-us/library/aa722523%28v=office.12%29.aspx?f=255&MSPPError=-2147217396

Кнопка Bold на самом деле является переключателем, поэтому вы должны использовать:

Sub MyBold(control As IRibbonControl, pressed As Boolean, ByRef cancelDefault)

End Sub
person jkpieterse    schedule 28.11.2016
comment
Большое спасибо, jkpieters. Теперь это работает. Мой редактор пользовательского интерфейса сгенерировал мне обратный вызов с неправильным количеством аргументов. - person kelvin 004; 29.11.2016
comment
У меня была такая же проблема, когда я решал вашу проблему :-) - person jkpieterse; 29.11.2016