Hier ist eine technischere und gründlichere Antwort auf eine alte Frage: Visual Basic für Applikationen (VBA) und Visual Basic (pre-.NET) sind nicht nur ähnliche Sprachen, sondern dieselbe Sprache. Speziell:
- Sie haben die gleiche Spezifikation : Die implementierungsunabhängige Beschreibung dessen, was die Sprache enthält und was sie bedeutet. Sie können es hier lesen: [MS-VBAL]: VBA-Sprachspezifikation
- Sie haben dieselbe Plattform : Beide kompilieren zu Microsoft P-Code , der wiederum von genau derselben virtuellen Maschine ausgeführt wird, die in der DLL msvbvm [x.0] .dll implementiert ist.
In einem alten VB-Nachschlagewerk, auf das ich letztes Jahr gestoßen bin , hat der Autor (Paul Lomax) sogar behauptet, dass "VBA" immer der Name der Sprache selbst war, sei es in eigenständigen Anwendungen oder in eingebetteten Kontexten (wie MS Office) ):
"Bevor wir weiter gehen, wollen wir nur einen grundlegenden Punkt erläutern. Visual Basic für Applikationen (VBA) ist die Sprache, die zum Programmieren in Visual Basic (VB) verwendet wird. VB selbst ist eine Entwicklungsumgebung; das Sprachelement dieser Umgebung ist VBA. ""
Die kleinen Unterschiede
Gehostet oder eigenständig : In der Praxis bedeuten die meisten Leute, wenn sie "VBA" sagen, speziell "VBA, wenn sie in MS Office verwendet werden", und "VB6" bedeutet "VBA, das in der letzten Version des eigenständigen VBA verwendet wird" Compiler (dh Visual Studio 6) ". Die mit MS Office gelieferte IDE und der Compiler sind fast identisch mit Visual Studio 6, mit der Einschränkung, dass die Kompilierung nicht für eigenständige DLL- oder Exe-Dateien zulässig ist. Dies bedeutet wiederum, dass in eingebetteten VBA-Projekten definierte Klassen von nicht eingebetteten COM-Verbrauchern nicht zugänglich sind, da sie nicht registriert werden können.
Weiterentwicklung : Microsoft stellte die Produktion eines eigenständigen VBA-Compilers mit Visual Studio 6 ein, da auf die .NET-Laufzeit als Plattform der Wahl umgestellt wurde. Das MS Office-Team verwaltet jedoch weiterhin VBA und hat sogar eine neue Version (VBA7) mit einer neuen VM (jetzt nur noch VBA7.dll genannt) veröffentlicht, die mit MS Office 2010 beginnt. Der einzige große Unterschied besteht darin, dass VBA7 beide 32- hat. und 64-Bit-Version und hat einige Verbesserungen, um die Unterschiede zwischen den beiden zu behandeln, insbesondere in Bezug auf externe API-Aufrufe.