Difference between Visual Basic 6.0 and VBA

calendar_today Asked Jun 14, 2009
thumb_up 122 upvotes
history Updated April 14, 2026

Direct Answer

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…. This is a prose walkthrough, ranked #1st of 95 by community upvote score, from 2009.


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.

help
Frequently Asked Questions

Why is this answer the top decile of VBA Core Q&A?
expand_more

Answer score +122 vs the VBA Core archive median ~40; this entry is elite. The score plus 154 supporting upvotes on the question itself (+154) means the asker and 121 subsequent voters all validated the approach.

The answer has no code block — how do I turn it into a snippet?
expand_more

Use the walkthrough above as a checklist, then open a top-10 VBA Core archive entry for a concrete starting template you can adapt.

This answer is 17 years old. Is it still relevant in 2026?
expand_more

Published 2009, which is 17 year(s) before today’s Office 2026 build. The VBA Core object model has had no breaking changes in that window. Three things to re-test: (1) blocked macros on downloaded files (Mark-of-the-Web), (2) 64-bit API declarations (PtrSafe, LongPtr), (3) any shift toward Office Scripts for web scenarios.

This is the #1 VBA Core pattern in the archive — what’s next on my reading list?
expand_more

After this top entry, browse the ranks 2–10 for the same category — the VBA Core archive orders by combined Q+A score. The second-ranked pattern typically solves a different subset of the same problem space.

Data source: Community-verified Q&A snapshot. Q-score 154, Answer-score 122, original post 2009, ranked #1st of 95 in the VBA Core archive. Last regenerated April 14, 2026.

vba