The Problem (Q-score 154, ranked #1st of 95 in the VBA Core archive)
The scenario as originally posted in 2009
What is the difference between the two. I always thought VBA is somewhat ‘crippled’ version of VB, but when a friend asked me the other day I had no idea what the actual differences are.
Also, when you use, for example, Excel, is that VB or VBA ?
Why community consensus is tight on this one
Across 95 VBA Core entries in the archive, the accepted answer here holds elite answer (top 10 %%) status — meaning voters are unusually aligned on the right fix.
The Verified Solution — elite answer (top 10 %%) (+122)
Verbal answer — walkthrough without a code block
Note: the verified answer is a prose walkthrough. If you need a runnable sample, check VBA Core entries ranked in the top 10 of the same archive.
For nearly all programming purposes, VBA and VB 6.0 are the same thing.
VBA cannot compile your program into an executable binary. You’ll always need the host (a Word file and MS Word, for example) to contain and execute your project. You’ll also not be able to create COM DLLs with VBA.
Apart from that, there is a difference in the IDE – the VB 6.0 IDE is more powerful in comparison. On the other hand, you have tight integration of the host application in VBA. Application-global objects (like “ActiveDocument”) and events are available without declaration, so application-specific programming is straight-forward.
Still, nothing keeps you from firing up Word, loading the VBA IDE and solving a problem that has no relation to Word whatsoever. I’m not sure if there is anything that VB 6.0 can do (technically), and VBA cannot. I’m looking for a comparison sheet on the MSDN though.
When to Use It — vintage (14+ years old, pre-2013)
This is the top-ranked pattern in VBA Core
Among 95 archived VBA Core entries, nothing currently outranks this one. If your stack includes VBA Core, this is the first pattern to try.
What changed between 2009 and 2026
The answer is 17 years old. The VBA Core object model has been stable across Office 2013, 2016, 2019, 2021, 365, and 2024/2026 LTSC, so the pattern still compiles. Changes that might affect you: 64-bit API declarations (use PtrSafe), blocked macros in downloaded files (Mark-of-the-Web), and the shift toward Office Scripts for web-first workflows.