From VSTO to Office Add Ins in Javascript – Here are my thoughts

It has been a long time since “wrote” my last article in this blog. Recently, it’s so easy to record video tutorials and post them on Youtube (including monetization)  that it’s hard to find a reason to write something. Well, after looking into the current situation of the Office Development, especially for VBA developers.

This is not a click bait article and my real intention is to promote an awareness of what is the real issue in the VBA market, from a developer perspective.

My experience with VBA started in the year 2000, 17 years ago in the Office 97 and soon, the 2000 version. So, I believe this is long enough to give the right to give my opinion about it.

In addition, most of what I’m going to comment here comes from a long talk with Excel/VBA Hard Core colleagues and friends who work (and struggle) daily with VBA, including MVPs in Office.


The original version of this article was written in Brazilian Portuguese, which is my first language. So, please, be aware that this might have some issues in English and some explanations will not reflect 100% the worldwide market, but what I could live so far in Brazil about it.

Target Audience

I intend to mainly target the VBA Developers audience. If you are interested in VBA for any other reason, you are very welcome! Anyway, you can read this article even if you have no idea about VBA, but I’m pretty sure you are going to get a bit confused in the next 2 to 3 paragraphs.

The Office Development: Current status

I’m writing this text on 2017’s Spring, so, keep this in mind if you are reading this in a far future. Having said that, I can describe the current Office Development as the follow:

  • VBA is still part of the Office (currently 2016/365) installation, but not for Office Online.
  • VBA has not been updated since 1999 despite some minor changes in 2003
  • Microsoft current approach for Office Development involves VSTO and Office Add-Ins created using Visual Studio and Javascript. These App can be installed through Office Store.
  • VBA is completely unstable and it looks like it’s getting worst on every new Office version

I’m going to add more facts that I know to endorse what I am about to write.

It’s undeniable that the VBA Development is far away to end. There are still huge communities supporting it and even more been created daily basis. I hold a forum (in Portuguese) which focus mostly in Excel and VBA and it’s usage only grows! I also have some friends in the same situation and they have been reported the same.

Alright, let’s check some numbers. Take a look at the chart below which I collected from Google Trends:

Google Trends - VBA, VSTO, Office Add Ins and Interop
Google Trends – VBA, VSTO, Office Add-Ins and Interop

It’s almost embarrassing for the alternatives in comparison to VBA. Some can say that VBA’s usage has been decreasing through the years, which is true, but let’s be blunt here. For a technology that was supposed to be dropped almost 20 years ago, such decreasing is almost insignificant, especially nowadays with a new language/framework/technology coming out every single week.

It’s time for numbers:

  • VBA: ~80 k mentions
  • VSTO: ~12 k mentions
  • Office JS: ~1,5 k mentions

We cannot consider Office Add-In search because it will consider all kinds of technology in which you can create an Office Add-In, including C++.

These are, in a nutshell, the numbers, and we know Microsoft for its epics success (Office, .NET, SQL Server, Azure) and ALSO for its enormous disasters (Windows Millennium, Vista, Infopath, Zune, Windows Phone).

That said, VBA is still there, strong, VSTO is a big failure and Office Add-Ins in Javascript is growing very slowly and to be honest, I’m not very optimistic about. We will talk more about it.

VBA and its current status

I like to describe the VBA current status as chaotic. But, chaotic does not mean necessarily “bad”.

What is really chaotic is Microsoft misdirection about it.

I’m translating this article right now. Come back in a few minutes… or hours… or days 🙂