When I see a blog post or a question or answer on a forum that seems to suggest that ‘VBA is something extra and not really part of proper Excel (really)’ I go bananas!

That’s simply ‘arse about face’, as we say here. (Non-Brits, you have now learned a new expression that might come useful. It means ‘the wrong way round’. Going bananas means going crazy, like the Incredible Hulk).

Excel is a collection of objects that’s rendered in a grid-like visual form. Some of the functionality of Excel can be invoked via the Ribbon choices. Much more (perhaps 100 times more!) can only be accessed programatically. (See my short video on making a sheet invisible, or updating a database with spreadsheet data).

The Excel objects can be programatically manipulated by many programming languages. VBA is just one of them. The advantage of VBA is that it is built into Excel, and has built-in helpful guidance in Excel called Intellisense. It is also easy to learn as it’s based on BASIC. (Beginners All-Purpose Symbolic Instruction Code).

An intermediate user (though perhaps not a beginner) will need to understand that ‘Excel is a collection of objects’ if they want to get access to the full power of Excel.

When I hear anyone refer to VBA as an additional (often meaning … unnecessary?) feature of Excel I think the missing link is an understanding of what Excel is – a collection of objects where only 1% is usable/accessible if working manually. VBA (or other programming languages like Python, .NET etc) are the means of gaining access to the whole of Excel.

To put it another way, if you’re determined to avoid programming (with VBA or any other) then you’re happy to limit yourself to 1% of Excel.

Perhaps it’s a desire to avoid having to think logically; because programming is logic. But, no one can really use Excel (or indeed participate in what Excel is used for) without having to think logically. So why the resistance?

Hiran de Silva

View all posts

Add comment

Your email address will not be published. Required fields are marked *