Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
0201/649590-0
|
Kontaktformular
Buy me a coffee
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
Konferenzen/Events
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: Visual Basic for Applications (VBA)
Begriff
Visual Basic for Applications
Abkürzung
VBA
Eintrag zuletzt aktualisiert am
06.06.2007
Zur Stichwortliste unseres Lexikons
Was ist
Visual Basic for Applications
?
Visual Basic for Applications (VBA) ist Light-Version von Visual Basic, die als Makro-Sprache für
Microsoft Office
u.a. Anwendungen eingesetzt wird. VBA besteht aus der
Programmiersprache
und einer
Entwicklungsumgebung
, die
Visual Studio 6.0
sehr ähnlich ist.
Visual Basic for Applications (VBA) ist eine Interpretersprache zur Automatisierung der Bedienung einer Anwendung und ersetzt in vielen Fällen die früheren Makrosprachen der Anwendungen. Ein VBA-Programm läuft stets innerhalb eines VBA-Host. Dieser ist eine VBA-fähige Anwendung. Vorreiter bei der Integration von VBA in Anwendungen ist Microsoft mit seiner Office-Produktfamilie. Darüber hinaus unterstützen aber auch noch viele andere Anwendungen VBA:
WordPerfect Office
CorelDraw ab Version
AGRESSO
TurboCAD Professional
IntelliCAD
Micrografx iGrafx Professional
Psipenta
Rational Rose
VBA und
Microsoft Office
In früheren Versionen der
Microsoft Office
-Produktfamilie hatten die Kernprodukte ihre eigenen Basic-Dialekte: Excel VBA, Word Basic, Access Basic. Mit
Microsoft Office
97 erfolgte eine Vereinheitlichung hinsichtlich der Sprachsyntax. Außerdem wurde Powerpoint ebenfalls VBA-fähig. Uneinheitlich blieb jedoch die
Entwicklungsumgebung
. Die Funktionen der VBA-
Entwicklungsumgebung
werden im Rahmen der fortgeschrittenen Techniken besprochen.
Grundsätzlich gilt, dass VBA interpretiert wird. Während es in Office 97 keine Möglichkeit gab, VBA zu kompilieren, ist dieser Grundsatz ab Office 2000 in einigen Fällen aufgeweicht worden. Mit VBA können nun in zwei abgegrenzten Fällen
COM
-
DLL
s erstellt werden: zum einen bei der Erstellung von
COM
-Add-ins, zum anderen bei der Erstellung von so genannten Datenumgebungen.
VBA und Scripting
Visual Basic for Applications (VBA) ist kein
Active Scripting Host
. Dennoch sind die VBA-fähigen Anwendungen eine überlegenswerte Plattform für Automatisierungslösungen, da diese weitestgehend kompatibel ist zu
VBS
cript.
Bei VBA nennt man die Anwendung, in der das VBA-Programm abläuft, einen VBA-Host. Beispiele für VBA-Hosts sind Microsoft Word, Excel, Powerpoint, Access und Visio. Auch wenn in Zusammenhang mit VBA von Kompilierung die Rede ist – mit VBA können keine eigenständig ausführbaren Anwendungen erstellt werden. Es ist immer ein VBA-Host nötig, wobei es je nach Anwendungsfall mehr oder weniger schnell möglich ist, ein VBA-Programm von einem VBA-Host in einen anderen zu portieren.
Für die Portierung von Programmcode von VBA zu Scriptcode gelten die gleichen Regeln wie für die Portierung aus der Visual Basic-Vollversion. VBA und VB 6.0 sind sich viel ähnlicher als VBA und
VBS
cript.
VBA-Projekte
VBA arbeitet ebenso wie das große VB mit Projekten, die aus verschiedenen Elementen (Modulen, Formularen, Klassenmodulen) bestehen. Im Unterschied zu VB 6.0 werden jedoch die einzelnen Elemente nicht in getrennten Dateien, sondern allesamt innerhalb einer einzigen Dokumentendatei des jeweiligen VBA-Host gespeichert (beispielsweise in Microsoft Word in einer .doc- oder .dot-Datei). Ein VBA-Projekt entspricht also einer Dokumentendatei.
Die Elemente sind komplett in die Datei integriert und können von außen nicht einzeln angesprochen werden. Die VBA-
IDE
erlaubt jedoch den Export eines Elements in eine separate Datei, die hinsichtlich der Dateierweiterungen den Dateien in VB 6.0 entspricht (.frm, .cls und .mod).
VBA verfügt seit Office 2000 auch über die Möglichkeit, komplette VBA-Projekte unabhängig von einer Office-Datei zu speichern. VBA-Projektdateien besitzen die Erweiterung .vba. Sie gehorchen einem gänzlich anderen Prinzip als VB 6.0-Projektdateien: Während ein VB 6.0-Projekt aus einer Textdatei für das Projekt sowie aus einer Textdatei für jedes enthaltene Formular bzw. Modul oder für jede enthaltene Klasse besteht, sind in einer VBA-Projektdatei alle Bausteine in einer binären Datei abgelegt.
VBA-
IDE
Die VBA-
IDE
ist der
VB6
-
IDE
sehr ähnlich. Bildschirmfenster und Menüs sind fast die gleichen. Der Projekt-Explorer zeigt allerdings nicht nur das aktuelle Projekt, sondern alle geöffneten Dokumentendateien. Dabei ist nicht nur ein einfacher Austausch von Programmcode per Cut&Paste möglich, sondern auch das Kopieren von ganzen Modulen oder Formularen per Drag&Drop.
Sie erreichen die VBA-
Entwicklungsumgebung
in Word, Excel und Powerpoint, indem Sie das Menü EXT
RAS
/MAKRO/VISUAL
BASIC
EDITOR anwählen oder aber unter EXT
RAS
/MAKRO/MAKROS ein bestehendes Makro bearbeiten.
Die Host-Anwendung hat auf ein VBA-Projekt immer noch eine aus der früheren Makrowelt geprägte Sicht. Was Word & Co. als Makro bezeichnen, ist in Wirklichkeit eine öffentliche (also nicht mit Private deklarierte) Unterroutine.
Bereits Office 97 sollte die VBA-
Entwicklungsumgebung
en der vier Office-Produkte komplett vereinheitlichen. Access ging aber einen Sonderweg. In Office 2000 ist positiv, dass die
Entwicklungsumgebung
von Access endlich auch der der anderen Office-Produkte entspricht – mit dem typischen Projekt-Explorer, der alle Codebestandteile anzeigt. Auch der in Formularen hinterlegte „Code behind Forms“ (
CBF
) wird unter dem Oberbegriff „
Microsoft Access
Klassenobjekte“ aufgelistet. Access hat innerhalb der Office-Produktfamilie hinsichtlich der Anwendungsentwicklung immer eine Sonderrolle gespielt und spielt diese auch mit Office 2000 noch.
Makrorekorder: VBA-Programme aufzeichnen
Word, Excel und Powerpoint bieten einen Makrorekorder an, der sehr hilfreiche Dienste leistet: Sie können bestimmte Aktionen in den jeweiligen Anwendungen vormachen und der VBA-Host setzt die Aktionen dann in VBA-Befehle um. Diese sind zwar nicht optimal, aber eine hervorragende Referenz für den VBA-Programmierer. Ein Makro mit dem Makrorekorder aufzuzeichnen, führt wesentlich schneller zu den gewünschten Befehlen als die Suche in der Hilfe. Leider gibt es diesen Makrorekorder nicht in Access – auch nicht in Access 2007.
Querverweise zu anderen Begriffen im Lexikon
Active Scripting Host
Entwicklungsumgebung
Programmiersprache
Visual Studio 6.0 (VS6)
Microsoft Office
Microsoft Access
Beginners All-Purpose Symbolic Instruction Code (BASIC)
Code Behind Forms (CBF)
Visual Basic Version 6.0 (VB6)
Dynamic Link Library (DLL)
Component Object Model (COM)
Integrated Development Environment (IDE)
Remote Access Service (RAS)
Visual Basic Script (VBS)
Beratung & Support
Anfrage für Beratung/Consulting zu Visual Basic for Applications VBA
Gesamter Beratungsthemenkatalog
Technischer Support zum Visual Basic for Applications VBA
Schulungen zu diesem Thema
Outlook-Programmierung mit Visual Basic for Applications (VBA)
Excel-Programmierung mit Visual Basic for Applications (VBA)
Word-Programmierung mit Visual Basic for Applications (VBA)
Microsoft Access - Entwicklung von Datenbanklösungen inklusive VBA
Visual Basic .NET für Umsteiger von VBA/VB 4/5/6
Infragistics Ignite UI - Infragistics jQuery Controls (vormals Netadvantage for jQuery)
Visual Basic .NET - Basiswissen
Windows Scripting
Visual Basic Script (VBScript/VBS) - Sprachsyntax und Praxiseinsatz
Windows Script Host (WSH)
Anfrage für eine individuelle Schulung zum Thema Visual Basic for Applications VBA
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr