vb6 einführung - Unterschied zwischen Visual Basic 6.0 und VBA




excel for (9)

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).

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?


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.


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.


VBA steht für Visual Basic for Applications und damit auch der kleine "for applications" -Scripting-Bruder von VB. VBA ist zwar in Excel, aber auch in den anderen Office-Anwendungen verfügbar.

Mit VB kann man eine eigenständige Windows-Anwendung erstellen, was mit VBA nicht möglich ist.

Es ist jedoch möglich, dass Entwickler VBA in ihre eigenen Anwendungen als Skriptsprache "einbetten", um diese Anwendungen zu automatisieren.

Bearbeiten : Aus der VBA-FAQ :

Was ist Visual Basic für Applikationen?

A. Microsoft Visual Basic für Applikationen (VBA) ist eine einbettbare Programmierumgebung, die es Entwicklern ermöglicht, benutzerdefinierte Lösungen mit der vollen Leistungsfähigkeit von Microsoft Visual Basic zu erstellen. Entwickler, die Anwendungen verwenden, die VBA hosten, können die Anwendungsfunktionalität automatisieren und erweitern und so den Entwicklungszyklus von benutzerdefinierten Geschäftslösungen verkürzen.

Beachten Sie, dass VB.NET noch eine andere Sprache ist, die nur die Syntax mit VB teilt.


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).


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 den Host (beispielsweise eine Word-Datei und MS Word), um Ihr Projekt zu speichern 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 dazu leistungsfähiger. Auf der anderen Seite haben Sie eine enge Integration der Host-Anwendung in VBA. Anwendungs-globale Objekte (wie "ActiveDocument") und Ereignisse sind ohne Deklaration verfügbar, so dass die anwendungsspezifische Programmierung unkompliziert ist.

Dennoch hält Sie nichts davon ab, Word hochzufeuern, die VBA-IDE zu laden und ein Problem zu lösen, das überhaupt keine Beziehung zu Word hat. Ich bin nicht sicher, ob es irgendetwas gibt, das VB 6.0 (technisch) tun kann, und VBA kann nicht. Ich suche jedoch nach einem Vergleichsblatt auf der MSDN.


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.


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.


Ich dachte, ich würde meine Erfahrung damit teilen, wie ich VBA-Makros in Excel (hauptsächlich) und Access gelernt habe.

Ich musste viele Aufgaben in Excel automatisieren, und ich wusste alles über das Aufzeichnen von Makros. Sie können Makros aus dem Menü Extras | Makros in Excel 2003 aufzeichnen (ich weiß nicht, was es in 2007/2010 ist).

Dann entschied ich, dass ich sie etwas ändern musste, also dachte ich, ich würde mir den aufgezeichneten Code ansehen. Drücken von Alt-F11 bringt Sie in die VBA Integrated Development Environment (IDE). Sie können dann die Makros betrachten, die Sie aufgezeichnet haben, und sehen, was sie tun.

Ich würde sie dann leicht bearbeiten und sehen, was passiert ist. Wenn ich etwas tun musste und ich mir nicht sicher war, wie, würde ich die Hilfe suchen oder googlen und im Web ausgezeichnete Antworten finden.

Ich arbeite jetzt als VBA-Entwickler und habe oft noch Dinge, die ich herausfinden muss. Mit einem starken Hintergrund in Computern und Office-Anwendungen (insbesondere Excel) hilft. Einen Ehemann zu haben, der Perl tut, bedeutet, dass Sie ihn nach allgemeinen Programmier-Dingen wie Syntax und Variablen und Programmierkonzepten fragen können, die möglicherweise zusätzliche Erklärungen benötigen. Ich hatte vorher so programmiert, dass diese Konzepte nicht neu für mich waren.

Viel Glück und denken Sie daran, eine Menge Fragen zu zu stellen und Sie werden in kürzester Zeit ein Profi sein.





vba vb6