programmierung - Unterschied zwischen Visual Basic 6.0 und VBA




visual basic lernen (6)

Was ist der Unterschied zwischen den beiden? Ich dachte immer, dass VBA eine etwas "verkrüppelte" Version von VB ist, aber als mich ein Freund neulich fragte, hatte ich keine Ahnung, was die tatsächlichen Unterschiede sind.

Wenn Sie beispielsweise Excel verwenden, ist das VB oder VBA?


Eigentlich kann VBA zum Kompilieren von DLLs verwendet werden. Die Office 2000- und Office XP Developer-Editionen enthielten einen VBA-Editor, der zum Erstellen von DLLs für die Verwendung als COM-Add-Ins verwendet werden konnte.

Diese Funktionalität wurde in späteren Versionen (2003 und 2007) mit dem Aufkommen der VSTO (VS Tools für Office) -Software entfernt, obwohl Sie natürlich COM-Addins in ähnlicher Weise ohne die Verwendung von VSTO (oder VS.Net) durch erstellen könnten mit VB6 IDE.


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, also ist es mehr wie eine modifizierte Version von VB6, mit Add-ons, um mit dem Dokument arbeiten zu können (wie Arbeitsblatt in VBA für Excel).


Hier ist eine technische und gründliche Antwort auf eine alte Frage: Visual Basic für Applikationen (VBA) und Visual Basic (Pre.NET) sind nicht nur ähnliche Sprachen, sie sind die gleiche Sprache. Speziell:

  • Sie haben dieselbe 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 die gleiche Plattform : Sie kompilieren beide nach Microsoft P-Code , der wiederum von genau der gleichen 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 sei, sei es in eigenständigen Anwendungen oder in eingebetteten Kontexten (wie MS Office) ):

"Bevor wir weitermachen, wollen wir nur einen grundlegenden Punkt klären. Visual Basic für Applikationen (VBA) ist die Programmiersprache in Visual Basic (VB). VB selbst ist eine Entwicklungsumgebung; das Sprachelement dieser Umgebung ist VBA. "

Die kleinen Unterschiede

Hosted vs. Stand-Alone : Wenn die meisten Leute "VBA" sagen, meinen sie konkret "VBA in MS Office" und "VB6" bedeutet "VBA in der letzten Version des eigenständigen VBA Compiler (zB Visual Studio 6) ". Die mit MS Office gebündelte 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 auf Klassen, die in eingebetteten VBA-Projekten definiert sind, nicht von nicht eingebetteten COM-Consumern zugegriffen werden kann, da sie nicht registriert werden können.

Fortlaufende Entwicklung : Microsoft hat die Produktion eines eigenständigen VBA-Compilers mit Visual Studio 6 eingestellt, da sie als bevorzugte Plattform auf die .NET-Laufzeit umgestellt haben. Das MS Office-Team behält jedoch weiterhin VBA bei und veröffentlichte sogar eine neue Version (VBA7) mit einer neuen VM (jetzt nur VBA7.dll genannt), beginnend mit MS Office 2010. Der einzige große Unterschied besteht darin, dass VBA7 sowohl über eine 32- und 64-Bit-Version und hat einige Verbesserungen, um die Unterschiede zwischen den beiden zu handhaben, speziell in Bezug auf externe API-Aufrufe.


VB (Visual Basic nur bis 6.0) ist eine Obermenge von VBA (Visual Basic für Applikationen). Ich weiß, dass andere dies irgendwie nicht verstanden haben, aber mein Verständnis ist, 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 die gleiche wie in VB6, aber der Unterschied besteht darin, dass die für VBA oder VB6 verfügbaren Objekte unterschiedlich sind, da sie unterschiedliche Zwecke haben. Insbesondere dient VBA dazu, Aufgaben, die in MS Office ausgeführt werden können, programmatisch zu automatisieren, während VB6 Standard-EXE, ActiveX-Steuerelemente, ActiveX-DLLs und ActiveX-EXEs erstellt, die eigenständig oder in anderen Programmen wie MS Office oder Windows arbeiten können.


VBA steht für Visual Basic for Applications und eine Visual Basic-Implementierung, die in der Office Suite verwendet werden soll.

Der Unterschied zwischen ihnen besteht darin, dass VBA in Office-Dokumenten eingebettet ist (eine Office-Funktion). VB ist die ideale Sprache für die Entwicklung von Anwendungen.


Wollen 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, dass die Sprachfunktionen denen von VB5 ähneln (es fehlen nur einige wenige eingebaute Funktionen), aber:

Sie haben Zugriff auf das Office-Dokument, für das Sie das VBA-Skript geschrieben haben und so können Sie z

  • Schreibe Makros (= automatisierte Routinen für kleine wiederkehrende Aufgaben in deiner Büroarbeit)
  • Definieren Sie neue Funktionen für die Excel-Zellen-Formel
  • Bürodaten verarbeiten

Beispiel: Legen Sie den Wert einer Excel-Zelle fest

ActiveSheet.Cells("A1").Value = "Foo"

VBC und -NET sind keine Skriptsprachen. Sie schreiben damit Standalone-Anwendungen mit separaten IDEs, 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).





vb6