Continue support for VBA

10-29-2012 12:41 PM
Status: Open
New Contributor III
I'm still waiting for a decent explanation of why VBA is being discontinued, in the first place.  The first reason given, if I remember correctly, was that Microsoft was getting rid of VBA.  Microsoft has said, very clearly, that they have no plans to discontinue VBA in the Office suite, and that existing partners can continue to ship VBA.  Directly from an MS Blog (

"Any existing partner can continue to ship VBA and Microsoft Office will continue to include it."

I have tried writing code in and Python, and it just isn't as good.  It is so much more difficult to debug code when using .net to develop extensions or scripts in ArcMap, and Python doesn't offer the same abilities, with no access to ArcObjects.  I have a solid programming background, so this is not simply a matter of someone complaining about problems caused by them not understanding what they're doing.  Seems like a case of "change for the sake of change." 

Why take away something that is working so well for so many users?

At a minimum, I would like an honest and reasonable explanation about why VBA is going away in ArcGIS.

Tags (1)
100% behind you on this one, why get rid of VBA, its crazy!

If I want to make slick interfaces I use .Net.  If I want to knock a bit of geoprocessing together I use modelbuilder/python and if I want to do some fast prototyping of a tool\proof of concept or build a tool that utilises fine grain functionality that ArcObjects offers but not with the overheads of the .net environment I use VBA.

Some of my largest coding projects have been executed entirely within VBA. Sure VB .net offers more sophisticated objects but generally VBA is excellent for my needs.

Hornbydd: Exactly. It's a useful solution that is working well for lots of people. Why take it away?
There is still a LOT that Python cannot do - it is NOT a substiute for VBA! It is better for working with lists, but cannot do anything useful with forms for user interfaces.
Nuking VBA, and the ability to full ArcObjects code inside of ArcMap/ArcCatalog, is shameful! As far as I'm concerned, not even VB.NET is a suitable replacement for VBA, as you must finish your code, spawn ArcMap, load your data, and only then run your VB.NET code. If you want to change your code, close our ArcMap and start again.

Combined with the fact that the VB.NET SDK templates only support either Visual Studio 2010 (which requires web registration) or non-free versions of Visual Studio 2012, I've switched to Java.

And Python as an alternative? In ArcGIS, VBA is to Python as normal English is to 1984 Newspeak.

It looks like ESRI's deprecation plans have changed, though now they are saying that 10.2 will be the last major release to include VBA.  I would still like some clarification on why VBA is being dicontinued, and whether it couldn't be retained over the long term.   If it is due to some techical impasse, that is one thing.  If it is "because Python is awesome," then that is another [stupid] thing.  ESRI seems to be one of the few companies that hasn't figured out that giving people more flexibility is better.

I was just asked to revise some code that I created 2+ years ago to accommodate new attribute table structures.  If the tool were still in VBA, I could have done this and had the person working in 10 minutes, including a decent testing and error-checking of the revised tool.  Since it's in, I have to recall the arcane process of accessing the project, creating a new add-in, showing the person how to install the add-in, etc., and I won't know if it works right until they try to use it.  So far, this is 2 hours of my time down the drain.  Absolutely awful.  These are the kinds of things driving me toward using R and the free GIS software for everything I can. 

ESRI has promised to deliver VBA as long as they deliver ArcMAP.

See link below:

Esri will continue to ship the Microsoft Visual Basic for
Applications (VBA) compatibility setup

with ArcGIS, as long as we continue to ship ArcMap or
until Microsoft notifies us that we can no

longer distribute VBA. - See more at: