The table below lists the RunTag action callbacks which can be used to trigger a macro from a ribbon control. See Supporting earlier Excel versions for more information about RunTag action callbacks.
| Control | OnAction callback | Parameters |
|---|---|---|
| button | OnActionButtonRunTag | |
| dropDown, gallery | OnActionIndexedRunTag | index, selectedItemId |
| checkBox, toggleButton | OnActionToggleButtonRunTag | pressed |
You can pass event information within the macro by using % symbols within the tag.
The table below lists the event information that can be inserted, along with the method
of CRibbonEvtParams that returns the equivalent information.
| Symbol | Value | CRibbonEvtParams method |
|---|---|---|
| %c | Control ID | GetId |
| %i | Item ID | GetSelectedId |
| %n | Item index | GetIndex |
| %p | Pressed | GetPressed |
Note that you can use multiple substitutions within a single tag.
The ribbon group defined below demonstrates the use of various macro substitutions.
Note the use of single quotes for some of the tag attribute values;
this allows us to put double-quotes around the string arguments.
CopyXML<group id="TagGroup" label="RunTag callbacks"> <buttonGroup id="StyleGroup"> <button id="SG_Left" imageMso="AlignLeft" label="Left" onAction="OnActionButtonRunTag" tag='SetStyle("%c")'/> <button id="SG_Center" imageMso="AlignCenter" label="Center" onAction="OnActionButtonRunTag" tag='SetStyle("%c")'/> <button id="SG_Right" imageMso="AlignRight" label="Right" onAction="OnActionButtonRunTag" tag='SetStyle("%c")'/> </buttonGroup> <dropDown id="MyDropDown" label="DropDown" onAction="OnActionIndexedRunTag" tag='SetStyle("%i")'> <item id="Item0" label="Left" imageMso="AlignLeft"/> <item id="Item1" label="Center" imageMso="AlignCenter"/> <item id="Item2" label="Right" imageMso="AlignRight"/> </dropDown> <separator id="Separator1" /> <toggleButton id="Toggle" label="Toggle" imageMso="Bold" size="large" onAction="OnActionToggleButtonRunTag" tag="SetBold(%p)"/> </group>

The table below lists the actual macros that will be invoked:
| Control | Item/State | Macro |
|---|---|---|
| SG_Left | SetStyle("SG_Left") | |
| SG_Center | SetStyle("SG_Center") | |
| SG_Right | SetStyle("SG_Right") | |
| MyDropDown | Item0 | SetStyle("Item0") |
| MyDropDown | Item1 | SetStyle("Item1") |
| MyDropDown | Item2 | SetStyle("Item2") |
| Toggle | Pressed | SetBold(TRUE) |
| Toggle | Not pressed | SetBold(FALSE) |