I was trying to repurpose a built-in control. Using similar RibbonX code and VBA code, I found that some controls can be repurposed (for examples, Paste and FileSave), and some cannot be repurposed (for examples, Bold and Underline). The error message was "Wrong number of arguments or invalid property assignment".
RibbonX code:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<commands>
<command idMso="Underline" enabled="false"/>
<command idMso="Bold" onAction="MyBold"/>
</commands>
</customUI>
In a standard VBA module:
'Callback for Bold onAction
Sub MyBold(control As IRibbonControl, ByRef cancelDefault)
MsgBox "Hello"
End Sub
In Excel when I clicked on the Bold control, I got the error message:
Wrong number of arguments or invalid property assignment
Searching the internet for examples this site and another site, do not provide me any clue.
Really appreciate your thoughts. Thank you.
You have the wrong callback signature. See this document: https://msdn.microsoft.com/en-us/library/aa722523%28v=office.12%29.aspx?f=255&MSPPError=-2147217396
The Bold button is in fact a togglebutton control, so you should be using:
Sub MyBold(control As IRibbonControl, pressed As Boolean, ByRef cancelDefault)
End Sub