Für fast alle Programmierzwecke sind VBA und VB 6.0 dasselbe.
VBA kann Ihr Programm nicht in eine ausführbare Binärdatei kompilieren. Sie benötigen immer den Host (z. B. eine Word-Datei und MS Word), um Ihr Projekt zu enthalten und auszuführen. Sie können auch keine COM-DLLs mit VBA erstellen.
Abgesehen davon gibt es einen Unterschied in der IDE - die VB 6.0 IDE ist im Vergleich leistungsfähiger. Auf der anderen Seite haben Sie eine enge Integration der Host-Anwendung in VBA. Anwendungsglobale Objekte (wie "ActiveDocument") und Ereignisse sind ohne Deklaration verfügbar, sodass die anwendungsspezifische Programmierung unkompliziert ist.
Nichts hindert Sie jedoch daran, Word zu starten, die VBA-IDE zu laden und ein Problem zu lösen, das keinerlei Beziehung zu Word hat. Ich bin mir nicht sicher, ob VB 6.0 irgendetwas (technisch) kann und VBA nicht. Ich suche allerdings nach einem Vergleichsblatt auf der MSDN.
VBA steht für Visual Basic für Applikationen, ebenso wie der kleine "für Anwendungen" -Skriptbruder von VB. VBA ist zwar in Excel verfügbar, aber auch in anderen Office-Anwendungen.
Mit VB kann eine eigenständige Windows-Anwendung erstellt werden, die mit VBA nicht möglich ist.
Entwickler können VBA jedoch als Skriptsprache zur Automatisierung dieser Anwendungen in ihre eigenen Anwendungen "einbetten".
Bearbeiten : Aus den VBA-FAQ :
Beachten Sie, dass VB.NET sogar eine andere Sprache ist, die nur die Syntax mit VB teilt.
quelle
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:
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) ):
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.
quelle
Möchten Sie VBA mit VB-Classic (VB6 ..) oder VB.NET vergleichen?
VBA (Visual Basic für Applikationen) ist eine vb-classic-basierte Skriptsprache, die in Microsoft Office-Anwendungen eingebettet ist. Ich denke, die Sprachfunktionen ähneln denen von VB5 (es fehlen nur einige wenige integrierte Funktionen), aber:
Sie haben Zugriff auf das Office-Dokument, für das Sie das VBA-Skript geschrieben haben, und können z
Beispiel: Stellen Sie den Wert einer Excel-Zelle ein
VBC und -.NET sind keine Skriptsprachen. Sie verwenden sie, um eigenständige Anwendungen mit separaten IDEs zu schreiben, die Sie mit VBA nicht ausführen können (VBA-Skripte "existieren" nur in Office).
VBA hat nichts mit VB.NET zu tun (sie haben nur eine ähnliche Syntax).
quelle
Tatsächlich kann VBA zum Kompilieren von DLLs verwendet werden. Die Office 2000- und Office XP Developer-Editionen enthielten einen VBA-Editor, mit dem DLLs zur Verwendung als COM-Add-Ins erstellt werden konnten.
Diese Funktionalität wurde in späteren Versionen (2003 und 2007) mit dem Aufkommen der VSTO-Software (VS Tools for Office) entfernt, obwohl Sie ohne die Verwendung von VSTO (oder VS.Net) von offensichtlich immer noch COM-Add-Ins auf ähnliche Weise erstellen können mit VB6 IDE.
quelle
Es ist VBA. VBA bedeutet Visual Basic für Applikationen und wird für Makros in Office-Dokumenten verwendet. Es hat keinen Zugriff auf VB.NET-Funktionen, daher ähnelt es eher einer modifizierten Version von VB6 mit Add-Ons, mit denen das Dokument bearbeitet werden kann (wie Arbeitsblatt in VBA für Excel).
quelle
VB ist keine Sprache . VB ist ein Programm, das VBA hostet, genau wie Office VBA hostet. VB ist eine Reihe von App-Objekten, genau wie Word und Excel, und ein Formularpaket, genau wie in Office.
Sie können also nur VBA-Code in VB schreiben.
PS: Diese Informationen befinden sich auf der Registerkarte INFO auf der VB- Fragenseite für VB.
Aus VBA Info
quelle
VBA steht für Visual Basic For Applications und ist eine Visual Basic-Implementierung, die in der Office Suite verwendet werden soll.
Der Unterschied besteht darin, dass VBA in Office-Dokumente eingebettet ist (eine Office-Funktion). VB ist die Idee / Sprache für die Entwicklung von Anwendungen.
quelle
VB (nur Visual Basic bis 6.0) ist eine Obermenge von VBA (Visual Basic für Applikationen). Ich weiß, dass andere sich dem entzogen haben, aber ich verstehe, dass die Semantik (dh das Vokabular) von VBA in VB6 enthalten ist (mit Ausnahme von Objekten, die für Office-Produkte spezifisch sind). Daher ist VBA eine Teilmenge von VB6. Die Syntax (dh die Reihenfolge, in der die Wörter geschrieben werden) ist in VBA genau dieselbe wie in VB6, aber der Unterschied besteht darin, dass die für VBA oder VB6 verfügbaren Objekte unterschiedlich sind, weil sie unterschiedliche Zwecke haben. Der Zweck von VBA besteht insbesondere darin, Aufgaben, die in MS Office ausgeführt werden können, programmgesteuert zu automatisieren, während der Zweck von VB6 darin besteht, Standard-EXE-, ActiveX-Steuerelemente, ActiveX-DLLs und ActiveX-EXE-Dateien zu erstellen, die entweder eigenständig oder in anderen Programmen wie MS Office oder Windows ausgeführt werden können.
quelle