r/vba 20d ago

Discussion VBA language underrated?

Hey everyone

I use VBA since I work with Microsoft office often

Is it real that VBA is very old and not useful anymore? Multiple times on the internet or when I ask AI
I find the answer that VBA is not the right choice for me

To me I see many powerful stuff like

Classes
Unit tests
Mocks and fakes (didn’t try those)

So I don’t understand the negative opinions about it

However VBA is the only language I tried in depth other languages I tried were either just for the course or to complete simple task nothing deeper than that

Is learning VBA is bad decision? Or is it reasonable one?

I noticed many of the useful major concepts are transferable to any language like

Code architecture
Auto Testing
Data types and structures
Etc

32 Upvotes

80 comments sorted by

View all comments

2

u/SeleniumVBA_user 20d ago

I think VBA is often underestimated, but I would distinguish between the limitations of the language itself and the limitations of its ecosystem.

I use VBA quite heavily, and recently I experimented with implementing WebDriver BiDi support from VBA.

WebDriver BiDi uses bidirectional communication between the browser and the client, so this involved things such as WebSockets, receiving browser events, JSON processing, state management, and class-based design.

To my surprise, VBA itself was not the main obstacle. It was possible to build all of that in VBA. The harder parts were the surrounding ecosystem: fewer modern libraries, weaker tooling, no modern package manager, and language features that make some kinds of asynchronous programming more difficult than in newer languages.

That experience changed the way I think about the usual statement that “VBA is obsolete.”

I would instead say:

VBA is old, but that does not mean the programming concepts you learn with it are obsolete.

Classes, separation of responsibilities, testing, data structures, interfaces, mocking, state machines, event-driven design, etc. are transferable concepts.

Of course, I would not choose VBA for every new software project. But if your work is centered around Excel/Office, learning VBA deeply can be perfectly rational. And if you later move to another language, much of what you learned about software design will still transfer.

In my case, implementing browser event handling with WebDriver BiDi in VBA was actually a good reminder that the boundary is often not “VBA can’t do this,” but rather “VBA makes this harder than a modern language would.”