VSTO & .NET & Excel

January 28, 2009

VSTO news

Filed under: .NET & Excel, VSTO & Excel — Dennis M Wallentin @ 5:48 pm

In a recent blog by Soma Segar, Office client developer enhancements with VS 2010, indicates that the next version of VSTO, version 4.0, comes with some great news, especially the PIA-less interoperability. In addition, C# will have an improved support for interoperability coding against Office.

From a general point of view I hope that the upcoming VSTO version includes new extension for Pivot Tables as well. If so then we can use ADO.NET/LINQ to populate Pivot Tables. VSTO 3.0 includes extensions for Chart, ListObject, NamedRange and XMLMappedRange and the Pivot Table, at least for me, is a natural object of this collection.

For Excel developers perhaps the most important question is about UDFs. Using VSTO 3.0 for UDFs, both add-ins and with workbooks, requires that we write VBA wrappers for every UDF. Compared with the other options we have; using VBA, using managed Automation add-ins and using XLLs, using VSTO for UDFs is simple the less attractive approach to use. Will VSTO 4.0 make a change or not?

Hopefully some of the news, like the PIA-less interoperability and customize the deployment package, also target the Shared Add-in template. After all, using managed COM add-ins is still an important area.

The high pace of releasing new VSTO versions may create an unwanted situation; today’s issues are not solved with the present version. In other words, instead of releasing major SPs new versions are released. The question is to which degree we should follow the pace that Microsoft put up. In my own opinion I see a need to accept to upgrade until VS and VSTO have reached the maturity stage. When this happen we will get a similar situation with the development tools as with Excel, i.e. new versions only compete against older versions.

Speaking about VBA, I have spent considerable time with the Ribbon UI and VBA. In VSTO we have fully support for the Ribbon XML, we have access to a Ribbon Visual Designer where callbacks can automatically be generated. In VBA we do not have the same support and in fact have no support at all. It’s vital for us VBA developer to get access to an object model to manipulate the Ribbon UI,  get a standard GetCustomUI event added to the Workbook object and a CreateCustomUI method added to the Commandbars Objects. In view of the present situation I can only conclude that VBA is classified by Microsoft as a second class citizen.

Kind regards,



  1. “VBA is classified by Microsoft as a second class citizen”

    I wonder what proportion of Excel-related code is written in VBA? And VSTO? How many end-users will ever try to write a C# program?

    VSTO is fine, but it is not and never will be a macro language. And the majority of Excel users want and need nothing more than a macro language.

    A replacement for poor old tired VBA and its poor old tired IDE would be nice, but I really believe it has to be hosted within Excel and at least as interactive and edit-and-continue capable as VBA is at present.

    I wonder if Microsoft get this? I hope so.

    Comment by Mike Woodhouse — January 28, 2009 @ 7:15 pm

  2. I guess we all will find out when Office 14 is released.

    Kind regards,

    Comment by Dennis Wallentin — January 28, 2009 @ 8:25 pm

  3. Hi Dennis, Mike,
    I think the PIA thing is due to DRL? Dynamic Runtime Libary, this is big(ish) news in the C# world as it moves c# closer to VB than C++, I’m just about to write a post about it, I guess I better check that link first!


    Comment by ross — February 4, 2009 @ 1:37 am

  4. Oh is it that, Dynamic Language Runtime? – yeah, I get lost in all the acronyms, it all the same thing, no matter what you call it 🙂

    Comment by Ross — February 4, 2009 @ 12:44 pm

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

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

Blog at WordPress.com.

%d bloggers like this: