VB, VB.NET, VBA, VBScript: Which Visual Basic is Which?
by DeeDee Walsh, on Mar 17, 2024 12:15:00 AM
Visual Basic: Unraveling the Versions
Visual Basic, a programming language born at Microsoft (side note: I was a VB 1.0 product manager. BEST.JOB.EVER.), has transformed A LOT over the years. My boss, who's younger than me pointed out that most people aren't as familiar with all of the flavors of VB so I figured I'd clarify the distinctions between the versions of Visual Basic, helping you understand what you'll see out there in the wild.
The Origins: Visual Basic (VB)
- When: Introduced in 1991
- Legacy Version: Visual Basic 6.0 (VB6) was the last major release (1998).
- Key Points:
- Object-based, but not a fully object-oriented programming language.
- Relied on its own runtime environment.
- Popular for rapidly building Windows desktop applications.
- Status: Officially unsupported by Microsoft, but still used in legacy systems (which is actually why we have VBUC in case you want to ditch it).
A New Era: Visual Basic .NET (VB.NET)
- When: Released in 2002
- Key Points:
- Built up the powerful .NET Framework.
- A fully object-oriented language, sharing a common runtime with other .NET languages like C#.
- Offers big kid features like inheritance, interfaces, and more.
- Enhanced performance, flexibility, and interoperability.
- Status: Continues to be supported, however, for new development, C# is often the preferred choice.
VBA: Visual Basic for Applications
- When: In use since the early 1990s.
- Key Points:
- Not a standalone language; embedded within Microsoft Office applications (Excel, Word, Access, Outlook, etc.).
- Used to automate tasks, create user interfaces, and manipulate Office data and objects.
- Shares much of the syntax with VB6, but not fully compatible.
- Status: Still widely used and actively supported within the Microsoft Office ecosystem.
Other Notable Mentions
- VBScript: A scripting language derived from Visual Basic, primarily used for web development on the client and server-side (less common now).
- Visual Basic for the Web: I don't remember this version but I found mentions in old articles - it was an earlier attempt at making Visual Basic work for web development (largely obsolete).
- Visual Basic Express: Feature deprecated, free version of Visual Basic (totally obsolete).
Technical Contrasts
Feature | Visual Basic (VB6) | Visual Basic .NET (VB.NET) | Visual Basic for Applications (VBA) |
---|---|---|---|
Object-Oriented Paradigm | Object-based (limited support) | Fully Object-Oriented | Object-based (similar to VB6) |
Runtime Environment | Visual Basic Runtime (VB-Runtime) | .NET Framework Common Language Runtime (CLR) | Host application (e.g., Microsoft Excel) |
Primary Uses | Desktop applications (legacy) | Desktop apps, web applications, and more | Office application automation |
Support Status | Unsupported by Microsoft | Supported but C# often preferred | Actively supported |
Choosing the Right Visual Basic
Legacy Desktop Applications: If you have to maintain existing VB6 applications, you're essentially tied to that version. However, we can help you out of this mess so hit me up if you want to modernize.- New Desktop or Web Applications: VB.NET offers the power of the .NET Framework, but C# might be a more modern choice favored by many developers.
- Office Automation: VBA reigns supreme for tasks within Microsoft Office applications.