Is VBA “dead”? Is VBA less powerful than Python, JavaScript, or another programming language? These discussions often fall into a strange trap, comparing VBA to languages that have entirely different purposes. It’s an absurd comparison–a train from London to Birmingham doesn’t need to be measured against an airline flight to Australia. And if we recognize that, we should ask ourselves why the discussion around VBA so often gets sidetracked this way.

The issue, I’d argue, is simple: people do not understand what VBA is or what it was designed to do. Lacking that understanding, they create expectations or assumptions that have no bearing on the actual topic. It’s a bit like a school assignment. Imagine being told to write about one topic you don’t understand and instead crafting an elaborate essay on something else that barely relates. Many discussions about VBA fall prey to the same disconnect, where the focus becomes a tangent.

What VBA Actually Is

To address the absurdity of these comparisons, we need to understand what VBA, or Visual Basic for Applications, really is. And to do that, it’s worth first looking at its origins:

1. The “BASIC” in VBA: VBA’s origins are deeply rooted in the language known as BASIC, or *Beginner’s All-Purpose Symbolic Instruction Code,* developed in 1963. It was created at Dartmouth College by two professors who wanted to make programming accessible to people who weren’t experts in science, technology, engineering, or math (STEM). Other programming languages of the time–Fortran, ALGOL, COBOL–were highly specialized, inaccessible to anyone who wasn’t a technical professional. BASIC, however, used English-like keywords (e.g., IF, ELSE, FOR NEXT) to make the language easier for everyone to understand and use.

2. Visual Basic: Fast-forward to the 1990s, when Microsoft introduced “Visual” to the name. Why? With the release of Windows, “visual” was a key selling point. Microsoft rebranded many products, adding “Visual” to emphasize the new, graphical Windows environment. Thus, Microsoft BASIC became Visual Basic (VB), later becoming the foundation for VBA when it was embedded in Microsoft Office products like Excel.

3. For “Applications”: The final component, “Applications,” points to VBA’s purpose within Office applications. VBA was designed to give users the power to automate and manipulate Excel’s object model, or structure. Instead of repeatedly doing tasks manually–clicking through cells, rows, columns, sheets–users could write procedures that Excel recognized and acted on automatically. VBA brought easy access to Excel’s visible objects (cells, sheets) and even its invisible objects, like Data Access Objects (DAO). These allow for powerful automation and manipulation of data in ways that mouse and keyboard alone could never achieve.

Together, these three elements define VBA’s purpose: a language designed specifically to enhance and streamline Office applications like Excel. VBA isn’t just a programming language; it’s a tool deeply integrated with Excel’s object model, uniquely allowing users to automate processes and perform advanced operations within Excel itself.

What Other Programming Languages Are Designed For

In contrast, the programming languages so often compared to VBA–Python, JavaScript, C#, and others–were built for entirely different contexts. These languages are more powerful in general environments, from web development (JavaScript) to scientific computing and automation (Python) to enterprise-level application development (C#). Each language was built for specific, external contexts; they were not meant to operate within Excel.

Taking JavaScript as an example: developed initially for web development, it became one of the most popular programming languages for applications outside of Office products. In recent years, Office Script was introduced, a JavaScript derivative for Excel on the web. Office Script is a great tool for web-based Excel users, but it doesn’t replace VBA for desktop applications. These languages serve their purposes admirably, just as VBA serves its purpose within Excel.

Why It’s Absurd to Compare VBA with Other Languages

So why do these comparisons persist? At their core, they’re like comparing a train from London to Birmingham with a flight from London to Nigeria. They serve entirely different purposes, yet they’re both forms of transportation. VBA, the “train,” is designed to take Excel users to automation and problem-solving within the Excel environment. Meanwhile, programming languages like Python, JavaScript, or C# are “airlines,” taking users into broader programming territories far beyond the scope of Excel. Comparing them is a futile exercise.

Who Really Needs VBA, and Why?

Some people ask, “Should I learn VBA or JavaScript, Python, or C#?” The answer depends entirely on your goals. If you want to work with data or manipulate objects in Excel or other Office applications, VBA is the most straightforward, accessible, and tightly integrated tool for the job. VBA was designed to work with Excel, not with external programming markets or “in-demand” job skills in software engineering.

Employers may not be “looking for VBA” because VBA isn’t intended for traditional programming roles in IT departments. It’s intended for users who see opportunities to make Excel-based processes easier, more powerful, and faster. The demand for VBA expertise often arises from the user’s own drive to build something valuable within Excel, not from external market trends. It’s a tool for those who recognize its unique value within a specific environment.

The Social Media Rhetoric Around VBA

Social media has also shaped how VBA is viewed. Many influencers and articles push the narrative that VBA is “obsolete,” touting instead the supposed “future” of Office Script, JavaScript, and other languages. These opinions often come from outside perspectives, from people unfamiliar with Excel’s inner workings. They focus on what seems relevant to larger tech trends, pushing VBA aside as “old-fashioned” without real understanding of its function.

Moreover, there’s a large segment of people interested in low-code/no-code solutions. For many, no-code solutions allow them to do more with less complexity. While these can be great for those who don’t program, they don’t have the full power VBA provides within Excel. In an Excel environment, VBA remains king, offering capabilities that low-code solutions simply can’t match.

A Summary on VBA’s Role and Relevance

Ultimately, VBA’s role in Excel is not just about programming. It’s about automating, simplifying, and expanding what Excel can do, in ways no keyboard or mouse alone could accomplish. VBA’s tightly integrated design makes it the perfect choice for manipulating Excel’s objects, visible and invisible, providing unmatched depth and power in Excel automation.

Comparing VBA to other programming languages is a distraction, a misinformed tangent that misses the point. Just as a train line from London to Birmingham has a specific purpose, so does VBA within Excel. Let’s focus on that purpose and appreciate the unique role VBA plays in enabling Excel users to create, automate, and innovate in their work.

This is a podcast by Hiran de Silva. Narrated by Bill.

Hiran de Silva

View all posts

Add comment

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