Xlls and the ribbon UI

I thought I would do a quick post on the new features in the Excel 2007 xll SDK relating to the ribbon UI. So here is the summary:


And here is the detail:

Thats right, the 2007 xll dev kit and the Excel 2007 C API contain zero features that interact with the ribbon (unless I missed something??). And lets not forget xlls are the recommended add-in technology of choice for Excel 2007. Of course if you do any toolbar/menu interaction the ribbon will hijack it in the normal way. But there is no way to add tabs or anything, everything is going to get buried in the (second class) add-in tab/bin.

A couple of new constants I was hoping for:

xlcKillRibbon (optional – forever?)


Maybe in the Office 14 SDK??

I thought the kit actually included an .xlam with the UI code in. I wouldn’t blame them for that, VBA is great for UI

  • its quick and easy to write
  • UI stuff doesn’t need to super fast
  • No real intellectual property issues in creating a few buttons (is there a new inconsistent User Experience Astronaut term for button? ‘switch’?’ or ‘кнопки’?)

But having ratched through it, I can’t just see the Ribbon manipulation stuff at all. And because the UEA’s have moffed up all the useful commands I have no idea how to find whats going on. It looks like the xll fires stuff into the ‘generic’ menu (as previously) which then ends up hidden in the add-ins ribbon tab. The .xlsm stuff just seems to contain a bunch of XLM – yay! Its great to see MS have not lost faith in this oldie but goldie technology. (reports of its death are premature as they say)

So if your xll based solution is to integrate natively in 2007 and its silly UI, it will need to be a multiple file thing. And possibly requiring registry access, and/or .net framework. Thats a bit crap really, a single file distribution is a much easier deployment story. Being a Ribbon refusnik I have no idea how to structure such a solution, and no immediate plans to find out.

I’m sure its down to a resource issue rather than a lack of love for the ribbon in the Excel team.

You can get to the ribbon using ATL as per this post. But that probably needs registration unlike xlls.

And its not quite as straightforward as xlfAddToolBar!




6 Responses to “Xlls and the ribbon UI”

  1. Ross Says:

    There goes the MVP for another year Simon!!!
    Strange that they would update the sdk for the 1st time in 10 years and not add anything for full control of the ribbon?

  2. Simon Says:

    Ross – yeah if one were seeking an MVP, this would probably not be the best approach.
    I really don’t know much about the ribbon (apart from its effect). Could be it was a late addition, could be we aren’t allowed to program it? could be the Word, Excel and Powerpoint teams dislike it as much as the rest of us? I wonder if the Outlook guys are having that battle right now?

  3. Ross Says:

    Yeah, it would be intresting to be a fly on the wall around redmon right now – i wonder how the ribbion team are holding out! – Mind you some people seem to like it you know!

  4. Simon Says:

    The same people probably loved clippy

  5. Eric Ma Says:

    I have an xll that adds a menu in pre-2007 Excel. When loaded in Excel 2007, nothing gets added to the Add-In tab of the Ribbon. Any suggestions how to get it to work?

  6. Simon Says:

    I have no idea I’m afraid, I thought it would go straight to the add-in tab.

    The easiest might be to load and register the xll from VBA then create your UI in that and call out to the registered xll functions.

    The ribbon team have dropped to ball badly on these dynamic, task specific UI issues as they have obviously never used the products in the real world.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: