1. Technology

VBA Forever!

By March 27, 2010

Follow me on:

VBA Forever

Now that Visual Studio 2010 ...
aka "Framework 4.0"
aka "Visual Basic .NET 2010"
... is almost upon us (in an "official launch" sense - the beta's have been available for download forever), it's time to review where we are architecturally. And one thing that stands out like a Las Vegas sign (where the "Launch Event" will be held) is that VBA ...
aka the last remnant of VB6
... is still part of the architecture and - as nearly as you can tell from the official press releases - always will be. In fact, there's a brand new version of VBA that will be released as part of Office 2010: VBA 7.0! So VBA not only lives, it's still growing.

Here's the "official word" from the "The official blog of the Microsoft Excel product team":

"... we have no plans to remove VBA from future versions of Office for Windows. We understand that VBA is a critical capability for large numbers of our customers ..."

64 bit computing, also a coming thing, won't be an obstacle either. Here's another "official word" from Microsoft:

"Office 2010 also provides support for 32-bit Office 2010 applications that run on 64-bit Windows operating systems by using Windows-32-on-Windows-64 (WOW64). WOW64 is the x86 emulator that enables 32-bit Windows-based applications to run seamlessly on 64-bit Windows systems. Office 2010 lets users continue to use existing Microsoft ActiveX Controls, Component Object Model (COM) add-ins, and Visual Basic for Applications (VBA), which are primarily 32-bit because no 64-bit versions are available yet for many add-ins. Supporting 32-bit Office 2010 applications that run on 64-bit operating systems allows for better compatibility with controls, add-ins, and VBA."

And then there is VSTO - Visual Studio Tools for Office. This is ... uhhh ... was the .NET managed code alternative to VBA. Two years ago, I wrote this blog, Microsoft: Are you trying to make VSTO fail? They succeeded! ... In making VSTO fail.

My prediction is basically what has happened. "... the programming staff in the I/T department, are far more likely to simply say, 'Why not just code up this sucker in regular VB.NET? We can use any of the Office libraries we need anyway. Why complicate things with VSTO?'"

Although you can still find the term "VSTO" used a bit, Microsoft is unfriending VSTO. It used to be a separate version of Visual Studio. Now it's just an option in the install of one of the other versions. They don't even call it VSTO anymore. Now it's "Office developer tools". In fact, the official documentation for "Visual Studio 2010 Office Development" never uses the term VSTO.  ... Ooooo! That's cold!

The Office gurus never used VSTO because it's Visual Studio based. VBA is convenient and accessible because it's right there inside the Office application. VSTO requires that the user 'join the programming department' by becoming a .NET programmer. The marketing judgment of Microsoft now seems to agree with my conclusion two years ago: a lot of those Office gurus are just not going to do that.

Larger organizations will force the issue by using VSTO ... uhhh, excuse me ... "Office developer tools", Sharepoint, Azure, and the other shiny new stuff under the tree to develop large systems that users will use whether they want to or not. (They'll be "too big to fail".) But even .NET is bending to the overpowering ... usefulness ... of VBA. VBA Interop will let you use document-level public methods exposed using VSTO. 

Developing for one of the Office products - like Excel or Word - seems to be drifting back toward VBA, not away from it.

Comments
March 28, 2010 at 4:55 pm
(1) Bob says:

Now if they’d come to their senses and make the investment in a real VB7. They must still have the laundry list of improvements from back around 1999, some may even have gotten into VBA 7.

It would sell pretty well and take a lot of pressure off those still stuck supporting VB6 programs by providing a path forward. It might take a series of phased new releases though to incorporate everything and fully modernize. Just as well, we need time to adapt.

March 28, 2010 at 5:14 pm
(2) SteveA says:

Maybe it’s time to renew the call for Microsoft to release VB6 to the public domain. Let the user community take over its care and feeding.

March 29, 2010 at 10:53 am
(3) visualbasic says:

Dream on, guys! I’m grateful that we can still do VBA in Word and Excel. I haven’t picked up the slightest hint that Microsoft will do any of those things.

But …

Initially, VB6 was the most serious competition to .NET. That’s why they drowned it in a washtub ten years ago. Microsoft reasoned that .NET had to succeed or the whole company was down the pipe so anything was justified. These days, that’s a historical event as far as they’re concerned. So … maybe, just maybe, they might do something like releasing VB6 to the public domain just to shut up us malcontents and rabble rousers.

March 29, 2010 at 11:29 am
(4) Laurent says:

how long time we must wait to download the sdk of VBA 7.0 !
Microsoft can not reasonably maintain position on VSTA
VBA 7.0 for Office et VSTA for other integrators !

Now we have lost to much time.

Everyone is waiting for VBA 7.0 SDK !

March 29, 2010 at 1:31 pm
(5) visualbasic says:

First, let’s be clear about this. VBA 7.0 is not an update to VB6. VB6 is dead, gone, kaput, departed, no longer with us, extinct, defunct, etc., etc. VBA 7.0 is just a new version of VBA for the Office products. This happened before. Office 2007 ran with VBA 6.5, not VB 6.0. I’m happy that they’re updating VBA at all.

But … as for when it will hit the store shelves …

June is a best guess at this point. It won’t be released with VS 2010.

July 3, 2010 at 9:33 am
(6) PicoCAD says:

I want VBA for my Autocad applications. .Net is most difficult.

September 26, 2010 at 10:14 am
(7) Toby says:

Other big reasons for keeping VBA are (1) that its initial simplicity provides an excellent learning environment for newcomers to programming and (b) its informality and flexibility make a superb, easily debuggable and very speedy prototyping environment.

Neither of which can be said of VB.Net, especially on a 64-bit machine. VB.Net might be ‘seriously heavyweight’, but for typical business tasks VBA is ‘agile’ and agilility can save a load of time and money. Because of its longer history and stability it’s also much better documented.

October 21, 2011 at 11:46 am
(8) Andrew says:

VB.net is diffcult, heavy weight and stupid language. It’s not for beginner. The syntex is more similar to java/javascript then VB6. Most programs written in VB6
cannot port to VB.net without huge code modification. Most powerful feature such as VarPtr, StrPtr, Any are no longer supported in VB.net. The reason why I like VB6 is
real RAD, convenient, short syntex and less strict than VB.net.
Microsoft make me to use CodeGear C++ Builder as developing language because it’s easier than VB.net.
I hope Microsoft will include VBA / Classic VB in the future version Visual Studio and stop the VB.net development.

January 8, 2012 at 6:58 pm
(9) ashok sharma says:

i dont understand the meaning of updated vba7 in 2010 office.
The first thing they must do is update the VBA IDE instead of trying to push vba programmer toward .net
The IDE seem to primitive and need some serious improvements.

to BILL GATE and TEAM

Leave a Comment

Line and paragraph breaks are automatic. Some HTML allowed: <a href="" title="">, <b>, <i>, <strike>
  1. About.com
  2. Technology
  3. Visual Basic

©2014 About.com. All rights reserved.