Visual Basic for Applications

Visual Basic for Applications

Visual Basic for Applications (VBA) ist eine zu den Microsoft-Office-Programmen gehörende Skriptsprache. Sie wurde aus dem von Microsoft entwickelten BASIC-Dialekt Visual Basic (VB) abgeleitet und wurde zur Steuerung von Abläufen innerhalb der Microsoft-Office-Programme entwickelt. VBA ist seit Mitte der 1990er Jahre der Nachfolger der bis zu diesem Zeitpunkt in den Microsoft-Office-Anwendungen enthaltenen verschiedenen Makro-Sprachen.

Inhaltsverzeichnis

Verfügbarkeit

Derzeit ist VBA in den Microsoft-Office-Programmen Word (seit Version 97), Excel (seit Version 95), Access (seit Version 95), Project, PowerPoint, FrontPage, Visio (seit Version 2000) und Outlook verfügbar. Darüber hinaus wird VBA von der Corel Corporation lizenziert und ist in Corel Draw und Corel Photo-Paint sowie der iGrafx Produktpalette verfügbar. VBA wird auch als Makrosprache in AutoCAD, ArcGIS, ARIS, CATIA, Solid Works, MindManager und vielen anderen Anwendungen eingesetzt. Microsoft Office 2008 für den Apple Macintosh bot keine VBA-Unterstützung, diese ist jedoch in der Version 2011 wieder integriert.

Sprache

VBA gilt als leistungsfähige Skriptsprache und ist die am stärksten verbreitete Möglichkeit, auf Microsoft-Office-Anwendungen (Excel, Word, Access etc.) basierende Programme zu erstellen. VBA ist eine interpretierte Programmiersprache, deren Syntax der von Visual Basic entspricht. Die Möglichkeiten und die Leistungsfähigkeit von VBA sind allerdings gegenüber Visual Basic deutlich reduziert. Beispielsweise wird ein VBA-Skript zwar vorkompiliert, um Variablen- und Konstantentabellen aufzubauen und syntaktische Überprüfungen durchzuführen, ein Kompilieren bis hin zu ausführbarem Maschinencode ist jedoch nicht möglich.

VBA ist vor allem für prozedurale Programmierung konzipiert. Klassen und Objekte können zwar syntaktisch dargestellt und implementiert werden, unterliegen jedoch den auch in Visual Basic Classic bestehenden Einschränkungen (fehlende Implementierungsvererbung); andere Merkmale wie Datenkapselung, Interface-Vererbung und Laufzeitpolymorphie können hingegen verwendet werden.

Der Zugriff über VBA auf das jeweilige Wirtsprogramm (Word, Excel etc.) erfolgt über eine meist gut dokumentierte Programmierschnittstelle. In den jeweiligen Anwendungen stehen neben dem VBA-Kern (Kontrollstrukturen, Datentypen, mathematische Funktionen, Dateisystem) spezielle Objekte des Wirtsprogramms zur Verfügung. Diese Objekte ermöglichen es, Abläufe des jeweiligen Wirtsprogramms zu automatisieren. Da diese Schnittstelle über das Component Object Model (COM) realisiert wird, kann eine VBA-Anwendung auch auf andere COM-Komponenten als die vom Wirtsprogramm zur Verfügung gestellten zugreifen.

Kompatibilität zu VB.NET

Bis zur Visual-Basic-Version 6.0 ist es problemlos möglich, Module und Formulare zwischen VBA und VB auszutauschen. Seit der Umstellung von Visual-Basic auf das .NET-Framework ist es nicht mehr möglich, Module und Formulare direkt auszutauschen, da sich das Dateiformat geändert hat. Allerdings können Module (also Quelltext-Dateien) durch Umbenennung und gezielte Anpassungen an die .NET-Datenstrukturen überführt werden. Bei Formularen ist dies nicht möglich, sie müssen komplett neu erstellt werden. Allerdings gibt es die Möglichkeit, in Visual Studio.NET mit den Visual Studio Tools for Office System (VSTO) Add-Ins für MS Office zu entwickeln, die die gleichen Aufgaben übernehmen können wie klassische Makros.

Seitens des Herstellers Microsoft bestehen Überlegungen, VBA langfristig durch eine .NET-basierte Technologie zu ersetzen.

Sicherheit

Die Anwendungsmöglichkeiten von VBA sind nicht auf die Automatisierung von Wirtsanwendungen beschränkt; der Leistungsumfang umfasst auch wesentliche Funktionen von Visual Basic. Daher können VBA-Anwendungen, ebenso wie alle anderen Windows-Anwendungen, schädlichen Code enthalten. Statt eines A-priori-Sicherheitskonzeptes, bei dem möglicherweise gefährliche Funktionen schon beim Sprachentwurf eingeschränkt oder die Makroausführung mittels einer Sandbox vom restlichen System abgeschirmt wird, stellt Microsoft-Office lediglich im Nachhinein Methoden zur Absicherung der Programmausführung wie etwa eine Prüfungsmöglichkeit eventuell vorhandener Makrozertifizierung zur Verfügung. Diese Faktoren, kombiniert mit der leichten Erlernbarkeit von VBA, führten zur Verbreitung von Word-Makroviren. Neuere MS-Office-Versionen fragen vor der Ausführung von VBA-Programmen nach und empfehlen, nur vertrauenswürdige und mit überprüfbaren Zertifikaten ausgestattete Makros zuzulassen.

Zum Schutz vor Einsichtnahme kann der VBA-Code durch ein Kennwort geschützt werden. Dieser Schutz konnte in der Vergangenheit teilweise recht einfach ausgehebelt werden, z. B. durch Import in die äquivalente Anwendung des OpenOffice.org-Paketes.

Verbreitung

Zahlreiche Websites und Newsgroups beschäftigen sich mit VBA. Durch seine Verbreitung gibt es eine Reihe von freien Programmsammlungen, Literatur und kommerziellen Angeboten. Da sich die Programme in eigenen Add-Ins kapseln lassen, können sie nach Bedarf zur Anwendung dazugeladen werden.

In industriellen Bereichen von mittelständischen und Großunternehmen wird VBA häufig verwendet, um schnell kleinere IT-Lösungen zu realisieren. Wird die Schaffung einer sauberen und langfristig nutzbaren Programmierung angestrebt, ist allerdings Voraussetzung, dass die entwickelten Skripte bzw. Makros und deren Struktur den Standards der Software-Entwicklung entsprechen. Aus diesem Grund ist es notwendig, VBA-Projekte genauso zu konzipieren wie andere Softwareprojekte und den sonst bei Makros üblichen Ad-hoc-Programmierstil zugunsten eines gut geplanten Softwareentwurfes abzulegen.

Dies ist oftmals nicht der Fall, denn VBA spricht auch Programmieranfänger an, und so ist es wahrscheinlich, dass irgendwann auch ein in Entwurfsfragen unerfahrener Programmierer ein Projekt weiterentwickelt. Zum anderen erschwert oder verhindert die mangelnde Unterstützung durch VBA auch für erfahrene Entwickler den Einsatz moderner Programmier- und Entwurfstechniken. Nach einiger Zeit entstehen in der Praxis deshalb häufig Systeme, die schlicht nicht mehr weiterentwickelt werden können, da ihre Struktur kaum durchschaubar ist.

Literatur

  • Axel Buhl, Petra Strauch: Grundkurs VBA. Einführung in die Programmentwicklung mit Visual Basic for Applications in Excel. 2005. ISBN 978-3-486-57889-8
  • Bernd Held: Excel VBA. Kompendium mit über 1000 Makros Verlag: Markt + Technik ISBN 978-3-8272-4117-7
  • Andreas Janka, " VBA in Word ", Galileo Press 2004, ISBN 3-89842-469-3

Siehe auch

Weblinks

Wikibooks Wikibooks: VBA in Excel - Grundlagen – Lern- und Lehrmaterialien

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Visual Basic for Applications — (VBA) Paradigm(s) Multi paradigm Appeared in 1993 Developer Microsoft …   Wikipedia

  • Visual basic for applications — Pour les articles homonymes, voir VBA. Visual Basic for Applications (VBA) est une implémentation de Microsoft Visual Basic qui est intégrée dans toutes les applications de Microsoft Office, dans quelques autres applications Microsoft comme Visio …   Wikipédia en Français

  • Visual Basic for Applications —   [Abk. VBA], ursprünglich speziell für die Verwendung innerhalb von Office Programmen entwickelte Makrosprache, die 1994 von Microsoft herausgebracht wurde und die sich von Quick Basic ableitet. Ziel war es, alle Microsoft Office Programme mit… …   Universal-Lexikon

  • Visual Basic for Applications — Эта статья о языке программирования, об антивирусе см.: VBA32. Visual Basic for Applications (VBA, Visual Basic для приложений)  немного упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft… …   Википедия

  • Visual Basic for Applications — Pour les articles homonymes, voir VBA. Visual Basic for Applications (VBA) est une implémentation de Microsoft Visual Basic qui est intégrée dans toutes les applications de Microsoft Office, dans quelques autres applications Microsoft comme Visio …   Wikipédia en Français

  • Visual Basic for Applications — Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar aplicaciones Windows y que se incluye en varias aplicaciones Microsoft. VBA permite a usuarios y programadores ampliar… …   Wikipedia Español

  • Visual Basic For Applications - VBA — A computer programming language developed by Microsoft which allows the development of user defined functions and the automation of certain processes and calculations. Visual Basic For Applications is a standard feature of Microsoft Office… …   Investment dictionary

  • Visual Basic for Applications —    Abbreviated VBA. A version of Microsoft Visual Basic included with Microsoft Windows 98 applications such as Excel; it is used to write everything from simple macros to complex custom applications …   Dictionary of networking

  • Visual Basic .Net — Basisdaten Paradigmen: prozedural, vollständig objektorientiert Erscheinungsjahr: 2002 Entwickle …   Deutsch Wikipedia

  • Visual Basic 6.0 — Visual Basic .NET Basisdaten Paradigmen: prozedural, vollständig objektorientiert Erscheinungsjahr: 2002 Entwickle …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”