VBA Basics: Module, Klassen und Co.

Unter VBA strukturieren wir den Code in verschiedene Elemente. Die übergeordneten Elemente sind die Module. Hier unterscheiden wir zwischen Klassenmodulen und Standardmodulen. Darunter können wir Variablen und ähnliche deklarieren sowie auszuführende Anweisungen unterbringen. Diese Anweisungen müssen eine Voraussetzung erfüllen: Sie müssen in einer Sub- oder Function-Prozedur oder innerhalb einer Property-Methode eingetragen werden. In diesem Artikel schauen wir uns die Grundlagen von Modulen, Klassenmodulen und Objektmodulen im Detail an.

Weiterlesen

VBA Basics: Makros, Prozeduren, Funktionen und Co.

VBA-Code in VBA-Projekten von Office-Anwendungen landet zuerst einmal in Modulen. Darunter gibt es einige weitere Strukturen, auf welche die Anweisungen aufgeteilt werden. Während Deklarationen von Variablen auch direkt in einem Modul angelegt werden können, müssen ausführbare Codezeilen zwingend in Konstrukten untergebracht werden, die je nach Anwendung Makros oder Prozeduren genannt werden. Außerdem gibt es noch Funktionen. Was es mit all diesen Begriffen auf sich hat und wieso diese nicht einheitlich definiert sind, erläutern wir in diesem Artikel.

Weiterlesen

VBA Basics: Bedingungen

Wenn man in VBA-Routinen bestimmte Anweisungen in Abhängigkeit von einem Wert einer Variablen, einer Eingabe oder anderen Bedingungen ausführen lassen möchte, verwendet man sogenannte Bedingungen. Unter VBA gibt es dazu die If…Then-Bedingung und die Select Case-Bedingung. Streng genommen gibt es noch einige VBA-Funktionen, die auch Bedingungen enthalten. Diese schauen wir uns aber in einem anderen Artikel an. Hier geht es zunächst um die beiden genannten Konstrukte.

Weiterlesen

Outlook: Application_Startup feuert nicht

Das Ereignis “Startup” des “Application”-Objekts von Outlook ist für viele benutzerdefinierte Erweiterungen von Outlook essenziell, da es die Möglichkeit bietet, direkt beim Starten von Outlook VBA-Code auszuführen. Damit lassen sich für verschiedene Anwendungen wichtige Automatismen anstoßen – zum Beispiel das Deklarieren und Initialisieren von Objektvariablen, für die Ereignisse implementiert werden sollen. Leider passiert es gelegentlich, dass die Ereignisprozedur Application_Startup beim Starten von Outlook nicht aufgerufen wird. Woran das liegt und wir dies ändern, zeigt der vorliegende Artikel.

Weiterlesen

Excel: Sheet-Navigation per Button

Wenn man ein Excel-Workbook mit vielen verschiedenen Worksheets verwendet, möchte man beim Öffnen des Workbooks vielleicht eine Übersichtsseite präsentiert bekommen, von der aus man per Mausklick auf entsprechende Schaltflächen zu den übrigen Worksheets gelangt – und am besten von dort aus mit einer weiteren Schaltfläche wieder zurück zur Übersicht. In diesem Artikel zeigen wir, wie das gelingt, und warum wir noch nicht mal eine einzige Zeile VBA-Code für dieses Vorhaben benötigen.

Weiterlesen

VBA-Basics: MsgBox- und InputBox-Funktion

Die beiden Funktionen MsgBox und InputBox ermöglichen die schnelle Abfrage von Benutzerfeedback. Soll eine Datei überschrieben werden? Wie soll die neue Kategorie heißen? Das sind nur zwei von vielen Beispielen für den Einsatz dieser beiden Funktionen. Dieser Artikel beschreibt die beiden so kompakt wie möglich, damit Du sie schnell in Deine eigenen Anwendungen integrieren kannst.

Weiterlesen

VBA-Basics: Makros aufzeichnen

Das Programmieren von Office-Automatisierungen beispielsweise in der Sprache VBA kann für Einsteiger herausfordernd sein. Allerdings gibt es Möglichkeiten, sich hier und da zu behelfen: Die Anwendungen Excel, Word und PowerPoint bieten nämlich einen sogenannten Makro-Rekorder, mit dem man einfache Abläufe innerhalb der Anwendung aufzeichnen kann. Das Ergebnis ist eine VBA-Prozedur, die Du anschließend erneut aufrufen kannst. In vielen Fällen reicht dies bereits aus, um die gewünschten Schritte zu automatisieren, in anderen Fällen möchtest Du das Ergebnis des Makro-Recordsets vielleicht noch anpassen. Wie Du diesen Makro-Rekorder einsetzt und wie Du die Ergebnisse anpassen kannst, zeigt der vorliegende Artikel.

Weiterlesen

Umfangreiche Texte in Code integrieren

Es gibt Aufgaben, um die schlägt man sich nicht. Eine davon ist es, größere Texte hart im VBA-Code zu verdrahten, sodass diese später weiterverarbeitet werden kann. Ein Beispiel ist das Zusammenstellen eines XML-Dokuments, von dem man eine Vorlage hat, und das man mit eigenen Werten füllen möchte, um es dann beispielsweise als Anfrage an einen Webservice zu schicken. Oder man möchte den Inhalt einer Mail per VBA an Outlook schicken und versenden, nachdem man den Mailtext noch um individuelle Inhalte wie Anrede oder Name des Empfängers ergänzt hat. Sprich: Uns liegt ein mehrzeiliger Text vor, den wir irgendwie in eine Variable packen wollen – und zwar ausschließlich per VBA-Code. Wie das gelingt, zeigt der vorliegende Artikel.

Weiterlesen

Office-Ereignisse mit VBA programmieren

Visual Basic for Applications, kurz VBA, ist eine Ableitung der Programmiersprache Visual Basic. Im Gegensatz zu diesem, das mit Visual Basic 6 vor einigen Jahren seine letzte Version erlebt hat, erfreut sich VBA immer noch reger Beliebtheit. Das liegt vor allem an seinem Hauptzweck: der Programmierung und der Steuerung von automatisierten Abläufen in den Office-Anwendungen, zum Beispiel Access, Excel, Outlook, PowerPoint oder Word. Der Kern dieser Automatisierungen sind sogenannte Ereignisse, also Prozeduren, die an einer bestimmten Stelle unter einem vordefinierten Namen hinzugefügt und dann durch das jeweilige Ereignis automatisch ausgelöst werden – beispielsweise dem Öffnen eines Dokuments oder dem Anklicken einer Schaltfläche. Dieser Artikel zeigt, welche Möglichkeiten die einzelnen Office-Anwendungen zum Einrichten von Ereignisprozeduren bieten und was bei der Automatisierung grundlegend zu beachten ist.

Weiterlesen

Makros in Office aktivieren

Wenn wir in den Anwendungen eines frisch installierten Office-Pakets VBA-Code ausführen wollen, führt dies mitunter nicht zum gewünschten Ergebnis. Stattdessen erscheint eine Meldung, die uns mitteilt, dass die Makros in diesem Projekt deaktiviert sind. Der Grund ist einfach: Mit VBA-Code können wir eine Menge Schaden anrichten, zum Beispiel Dateien oder Verzeichnisse löschen. Daher ist seine Ausführung standardmäßig deaktiviert. Wie wir den VBA-Code dennoch ausführen können, zeigt dieser Artikel.

Weiterlesen