The Channel logo


By | Dominic Connor 21st January 2008 20:21

Viva VBA - alas

Entrenched victory

In the early 1990s when Visual Basic (VB) first infiltrated Excel to become Visual Basic for Applications (VBA), it helped push Microsoft's then-fledgling spreadsheet so far ahead of others that most people today are not aware many competitors even existed.

Lotus Development - since consumed by IBM - turned down a chance to incorporate VB into its groundbreaking 1-2-3 spreadsheet telling the ISV who offered the module: "We don't wish to endorse it."

It is by such decisions that whole businesses die.

Today VBA is a playground for virus writers because, unlike other ways to spread your filth, getting VBA to copy itself and change a few files is the work of just a few minutes for anyone with any programming experience. Hacking a .exe header in assembler is tougher. Microsoft's big cash cow Office is entirely customizable using VBA, yet one is presented with messages of the form "Outlook is really scared of VBA, and so should you be, do you really want to do this?"

It's little wonder, then, that the introduction of a new version of Office leads to speculation that VBA will be buried. But while it's already gone from Mac Office - because the poor dears at Microsoft found the effort of coding it up too hard - it's unlikely to vanish from Office for the PC for at least the next version.

The Vole may be evil but it is damned good at making money, and this is why VBA is not leaving Office any time soon.

VBA is firmly established in the majority of businesses, big and small, keeping them running and programmers gainfully employed.

VBA, for example, runs the world financial markets. The credit crunch happened mostly in the minds of Excel spreadsheets doing horribly complex calculations in a language designed to change formatting, or to capture and validate user input.

They are not even good VBA macros, the most common degree for the quants who do this is physics, not computer science, and those building macros have never even heard of version control, structured programming or been on any programming course since an introduction to Fortran years ago as an undergrad.

VBA in Word knocks up many of the world's form letters and there are many itinerant VBA hackers wandering from firm to firm keeping them going because they are often as critical to the business as something such as stock control. Flashy effects can be knocked up in PowerPoint and I, personally, would sink under the weight of email without Outlook macros.

There is Visual Tools for Office (VSTO), as Microsoft will tell you. These are properly architected and support all the .NET languages, with those on the madder end of user spectrum even trying it on with F#, but have a user base trivial in size compared to VBA.

Partly this is because VBA in Excel can actually be written by recording what you want to happen, then meddling to make it do other things. Not great code, but by far the easiest entry point for software development on the planet. So the physicist-quant-programmers mix in with secretaries, accountants, and, yes, even journalists.

With such utility and widespread use, Microsoft rightly fears removing VBA from Office because of the financial pain it would unleash. Although OpenOffice et al nibble at the edges of the cash flow, Office continues to grow almost oblivious to them.

The biggest competitors to Office 2007 are really earlier versions of Office. The changes to the GUI combined with the lack of real user demand for change means that upgrades are slow in rolling out, but there is now a gentle drift.

As large corporates now go for standardized builds of Windows rolled out to thousands of users at a time, a few users who like the multi-threading capabilities of Excel 12, or the really cool components in the new Word, may simply be ignored.

Microsoft makes real money out of its users when they upgrade, not while they use the product, so anything that slows this process is not popular at all.

That means, that if Microsoft were to lose the plot and kill VBA, a huge wave of powerful users would flatly refuse to allow upgrades. As with credit derivatives, a large percentage of all the money made (or lost) by banks goes through VBA, aided and abetted by C++ XLLs.

The final reason VBA isn't going away comes from the irony of the Windows monoculture of many firms, that - because everyone has to use the same collection of software, configured much the same way - the corporate configuration has to be capable of running less mainstream applications that are important somewhere in the firm.

So, although most users of Office do not code VBA, and a large percentage don't even use VBA code written for them, enough use is made somewhere that they must have the facility. Think of VBA as like the ladies toilets in a firm where 99% of the staff is male.

A version of Office without VBA would therefore find it extremely hard to penetrate corporates and even quite a few smaller outfits, because it would find it difficult to co-exist with previous editions.

VBA will, I believe, be with us for a long time. You might not like it, very few people do, but the reality is VBA will be providing work for a lot of people in IT long after Windows Vista is a memory.®

comment icon Read 29 comments on this article alert Send corrections


Frank Jennings

What do you do? Use manual typwriters or live in a Scottish croft? Our man advises
A rusty petrol pump at an abandoned gas station. Pic by Silvia B. Jakiello via shutterstock

Trevor Pott

Among other things, Active Directory needs an overhaul
Baby looks taken aback/shocked/affronted. Photo by Shutterstock

Kat Hall

Plans for 2 million FTTP connections in next four years 'not enough'
Microsoft CEO Satya Nadella


League of gentlemen poster - Tubbs and Edward at the local shop. Copyright BBC
One reselling man tells his tale of woe