Leistungen
Leistungen
Überblick
Leistungsangebot
Kernkompetenzen
Schulungsthemen
In-House-Schulungen
Offene .NET-Seminare
Offene WPS-Seminare
Beratung
Coaching
Support
Softwareentwicklung
Entwickler-Vermittlung
.NET/Visual Studio
TFS/ALM/Scrum
Webprogrammierung
PowerShell
Konditionen
Anfrage/Kontakt
Beratung/Coaching
Beratung/Coaching
Beratungsthemen
Coaching
Unsere Berater
Referenzkunden
Konditionen
Angebotsanfrage
In-House-Schulungen
In-House-Schulungen
Überblick
Themen/Fachgebiete
Schulungskonfigurator
Konzepte
.NET/Visual Studio
C#
VB.NET
ASP.NET
Moderne Webanwendungen
TFS/ALM/Scrum
PowerShell
Konferenzvortraege
Referenzkunden
Unsere Trainer
Konditionen
Angebotsanfrage
Offene Schulungen
Offene Schulungen
Überblick .NET-Seminare
.NET/C#-Basisseminar
WPF (Desktop)
ASP.NET/AJAX (Web)
WCF/WF (SOA)
ADO.NET/EF (Data)
Windows PowerShell
.NET, C#, VB, Visual Studio
.NET, C#, VB, Visual Studio
Startseite
Beratung/Training
Offene .NET-Seminare
Einführung
Lexikon
Artikel
Bücher
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
World Wide Wings Demo
Codebeispiele
Scripting
ASP.NET
.NET 2.0
.NET 3.0/3.5
.NET 4.0/4.5
Community
Forum
Kommerzielle Leistungen
ASP.NET
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
PowerShell
PowerShell
Überblick
Beratung
In-House-Schulungen
Öffentliche Schulungen
Codebeispiele
Commandlet Extensions
Offene PowerShell-Seminare
Inhouse-Seminare
Windows
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Windows Scripting
Windows Scripting
Startseite
Lexikon
FAQ
Buecher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
Scripting-Tools
WSH-Editoren
Codebeispiele
ASP.NET
.NET-Scripting
Forum
Links
Kommerzielle Leistungen
Service
Service
Website-FAQ
Anmeldung/Login
Leser-Registrierung
Gast-Registrierung
Nachrichten/RSS
Newsletter
Foren
Weblog
Lexikon
Downloads
Support
Kontakt
Literaturtipps
Publikationen
Publikationen
Redaktionsbüro
Bücher
Fachartikel
Leser-Portal
Autoren gesucht!
Rezensionen
Über uns
Über uns
Holger Schwichtenberg
Team
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Site Map
Weitere Websites
Tag Cloud
Impressum
Rechtliches

Erklärung des Begriffs: Visual Basic for Applications (VBA)
Was ist Visual Basic for Applications (VBA)?

Zurück zur Stichwortliste



Begriff Visual Basic for Applications
Abkürzung VBA
Synonyme/Aliase

Erläuterung des Begriffs 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-DLLs 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 VBScript.

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

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ü EXTRAS/MAKRO/VISUAL BASIC EDITOR anwählen oder aber unter EXTRAS/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-Entwicklungsumgebungen 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.

Artikel in gedruckten Medien

  • VB-Sprachfamilie
     (Praxishandbuch Automatisierte Administration mit Scriptsprachen: Konzepte und Lösungen, 2002)
  • Querverweise zu anderen Begriffen im Lexikon

    Active Scripting Host
    Entwicklungsumgebung
    Visual Studio 6.0
    Code Behind Forms
    Microsoft Office
    Active Scripting
    Active Script
    Scripting
    Dokumente
    Add-In
    Modul


    Dienstleistungen:

    Beratung/Consulting zu Visual Basic for Applications

    Support zu Visual Basic for Applications

    Schulungen zu diesem Thema: