This project has moved. For the latest updates, please go here.

Setting Ribbon Properties

The Ribbon extensibility model is a bit unusual. There is no opportunity to set the 'label' or 'image' property of the button after it is created, but there are 'getLabel' and 'getImage' callbacks that you can set up.

To get Excel to refresh your control (or the whole Ribbon extension) you need to set an onLoad callback (on the customUI element) which receives an IRibbonUI interface for you to keep. This interface has two methods - Invalidate and InvalidateControl - which you call when a control should be refreshed.

ExcelDna can helps with the implementation of the getImage callback - call the ExcelRibbon.LoadImage method (probably as base.LoadImage(imageId) in your code) with the imageId of the picture you want to show - this way you can load the images you specify in the .dna file.

References

I suggest the following references:

Articles on MSDN:

Some Excel 2010 info:

Other links:


Also note that a ribbon designed in VSTO can be exported to xml, which gives a <customUI ...> tag that can be used directly in Excel-DNA, though the ribbon handlers have to be re-implemented.

Last edited Jun 3, 2014 at 12:14 PM by govert, version 5