Visual Basic Entwickler 02/2022

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.

Zum Artikel …

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.

Zum Artikel …

Outlook: Die Application-Klasse

Die Basisklasse einer jeden Office-Anwendung heißt »Application«. Diese stellt je nach Anwendung verschiedene Eigenschaften, Methoden und Ereignisse bereit. Das ist auch im Objektmodell von Outlook der Fall. Hier finden wir beispielsweise die Möglichkeit für den Zugriff auf die »Explorer«- und »Inspector«-Elemente von Outlook, auf die kompletten E-Mails, Kontakte, Termine et cetera über die »GetNamespace«-Funktion oder das wichtige Ereignis »Startup«, mit dem wir gleich beim Start von Outlook wichtige, selbst programmierte Aktionen ausführen können. Dieser Artikel stellt die verschiedenen Member der Application-Klasse vor und beschreibt, was wir mit diesen alles erledigen können.

Zum Artikel …

Outlook: Elemente durchsuchen mit AdvancedSearch

Die »AdvancedSearch«-Methode der Application-Klasse von Outlook erlaubt das Suchen von Elementen nach bestimmten Kriterien in dem vorgegebenen Ordner – gegebenenfalls sogar mit Unterordnern. An ihr hängen zwei Ereignisse namens »AdvancedSearchComplete« und »AdvancedSearchStopped«, die je nach dem Ausgang der Suche ausgelöst werden. Dieser Artikel zeigt, wie wir eine Suche in Outlook-Elementen per VBA durchführen und wie wir die damit zusammenhängenden Ereignisse verwenden müssen, damit die Suche wie gewünscht funktioniert. Außerdem erfährst Du, wie Du Suchbegriff und Suchbereich definieren musst.

Zum Artikel …

Outlook: Explorer automatisieren

Outlook ist wohl die Schaltzentrale an allen Arbeitsplätzen, die mit Microsoft Office arbeiten. Es bietet schon von Haus aus sehr viele Möglichkeiten, um E-Mails, Termine, Aufgaben oder Kontakte zu verwalten. Wenn man länger damit arbeitet, kommen einem früher oder später Ideen, wie man es noch weiter automatisieren könnte. Beispielsweise, um die Inhalte von E-Mails, die man in einen bestimmten Ordner verschiebt, gleich in Aufgaben umzuwandeln, vorgefertigte Antworten für E-Mails bereitzuhalten und so weiter. Der Weg zur Umsetzung führt über die Programmierung per VBA und genauer von VBA-Ereignissen. Denn für fast jede Aktion, die wir in Outlook durchführen, ob es nun das Erstellen oder Abschicken einer E-Mail, das Anlegen einer Aufgabe, das Öffnen eines Kontaktes ist, können wir ein Ereignis definieren, für das wir eine passende Prozedur hinterlegen. Dieser Artikel zeigt die wichtigsten Elemente des Hauptelements der Benutzeroberfläche von Outlook, nämlich dem Explorer, und wie wir diese direkt im VBA-Projekt von Outlook für unsere Zwecke anpassen können.

Zum Artikel …

E-Mails per VBA erstellen mit CreateItem

Wie man mit Outlook eine E-Mail erstellt, diese mit Betreff, Inhalt, Anlagen, Empfänger und so weiter füllt und diese dann verschickt, weiß mittlerweile jeder. Aber was, wenn man das Erstellen von E-Mails automatisieren möchte und dazu VBA nutzen will? Beispielsweise, um auf Knopfdruck eine Standardmail an einen Empfänger zu schicken oder auch eine Mail an eine Liste von Kunden zu senden? Der vorliegende Artikel zeigt, wie Sie per VBA neue E-Mails erstellen und diese dann entweder zum Betrachten, Nachbearbeiten und zum manuellen Senden anzeigen oder diese sofort auf den Weg zum Empfänger bringen.

Zum Artikel …

twinBASIC: Visual Basic für die Zukunft

twinBASIC ist eine moderne Version des klassischen Visual Basic, die auf 100% Kompatibilität zu bestehenden Visual Basic 6-Projekten ausgelegt sein soll. Es ist ein Projekt des englischen Programmierers Wayne Phillips, der bereits im Access-Umfeld mit spektakulären Lösungen auf sich aufmerksam gemacht hat. twinBASIC scheint jedoch sein Meisterwerk zu werden. Es kommt mit einer eigenen Entwicklungsumgebung, die sich nicht vor anderen modernen IDEs verstecken muss. In diesem Artikel schauen wir uns an, wie Du die twinBASIC-Entwicklungsumgebung installierst und die ersten Projekte damit erstellst. In weiteren Artikeln werfen wir einen Blick auf die verschiedenen Projekttypen und wie Du Lösungen damit erstellen kannst.

Zum Artikel …

COM-Add-Ins mit twinBASIC

COM-Add-Ins sind Erweiterungen für Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die über die Benutzeroberfläche der jeweiligen Anwendung verfügbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User­interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Früher ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch spätestens seit der Einführung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC ist ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins ermöglicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Gerüsts für COM-Add-Ins vor, das wir in weiteren Artikel mit praktischen Lösungen für die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.

Zum Artikel …

Outlook: Codebeispiele ausprobieren

In diesem Magazin stellen wir immer wieder Beispiele zur Programmierung von Outlook per VBA vor. Während wir solchen Beispielcode bei den anderen Anwendungen wie Word, Excel oder PowerPoint oder auch unter Access in entsprechenden Beispieldokumenten unterbringen können, müssen wir die Outlook-Beispiele in das VBA-Projekt von Outlook einfügen, um diese auszuprobieren. Wie das gelingt, zeigt der vorliegende Artikel.

Zum Artikel …

Ribbon-Signaturen für VBA, VB6 und twinBASIC

Wer Anwendungen programmiert, die das Ribbon anpassen, möchte die benutzerdefinierten Ribbon-Steuerelemente auch mit entsprechenden Callback-Prozeduren ausstatten. Dieser Artikel liefert eine Zusammenfassung der Ribbon-Signaturen für die Callback-Funktionen unter VBA und Visual Basic 6 beziehungsweise twinBASIC. Die VBA-Signaturen nutzen wir, wenn wir Ribbon-Erweiterungen direkt zu den mit den Office-Anwendungen erstellten Ribbonanpassungen hinzufügen wollen. Erstellen wir hingegen COM-Add-Ins mit VB6 oder twinBASIC, nutzen wir die alternativen Signaturen.

Zum Artikel …

Youtube-Kanal mit VB.NET verwalten, Teil 1

Wie vielleicht einige wissen, füttere ich seit kurzer Zeit einen Youtube-Kanal mit Access-Videos (sicher werden bald auch welche zu den Themen aus »Visual Basic Entwickler« folgen). Um den Zuschauern der Videos den besten Service bieten zu können, möchte ich in den Beschreibungstexten der YouTube-Videos auf andere passende Videos und auch auf Artikel aus den Magazinen verweisen. Da immer wieder neue Videos und Artikel hinzukommen, die thematisch zusammenpassen, möchte ich natürlich auch die Verlinkung in den Beschreibungstexten aktuell halten. Das ist allerdings eine Menge Aufwand, wenn man das immer von Hand erledigen muss. Da bietet es sich doch an, einmal einen Blick auf die Möglichkeiten des codegesteuerten Zugriffs auf einen Youtube-Kanal zu werfen – und damit Funktionen wie das Einlesen der vorhandenen Playlisten und Videos sowie das Aktualisieren von Inhalten wie den Beschreibungstexten zu automatisieren.

Zum Artikel …

YouTube-Kanal mit VB.NET verwalten, Teil 2

Im ersten Teil dieser Artikelreihe haben wir die Vorbereitungen auf der Seite von Google beziehungsweise YouTube erledigt. Dabei haben wir ein Google-Konto angelegt, dieses zum Entwickler-Konto erweitert und eine Anwendung für den Zugriff auf die YouTube-API registriert. Außerdem haben wir dort die für den Zugriff notwendigen Zugangsdaten erstellt, die wir in der nun zu programmierenden .NET-Lösung verwenden können. In der .NET-Lösung wollen wir verschiedene Informationen zu unserem YouTube-Kanal abrufen wie die Namen der Playlisten und Informationen zu den enthaltenen Videos. Außerdem wollen wir neue Videos anlegen und die Eigenschaften der vorhandenen Videos anpassen.

Zum Artikel …

COM-DLL für den Zugriff auf die YouTube-API

In der Artikelreihe »Youtube-Kanal mit VB.NET verwalten« haben wir Methoden vorgestellt, mit denen wir die Videos eines Youtube-Kanals auslesen und mit denen wir neue Videos hochladen oder die Eigenschaften bestehender Videos anpassen können. Diese Methoden wollen wir nun in einer DLL zusammenfassen, die wir in eine Office-Anwendung wie Excel oder Access einbinden können, um von dort aus beispielsweise Titel und Beschreibungstexte lesen und schreiben können. Im vorliegenden Artikel zeigen wir daher, wie wir die bereits beschriebenen Funktionen in einem neuen Projekt verwenden und daraus die gewünschte DLL erstellen. In einem weiteren Artikel zeigen wir dann, wie Du von Excel aus die Daten der Videos eines Kanals in eine Excel-Tabelle einlesen kannst.

Zum Artikel …

VBA-Basics: Schnellstart

In diesem Magazin dreht sich Vieles um die Programmierung von Office-Anwendungen. Die Programmiersprache für die Programmierung in dem VBA-Projekten der jeweiligen Anwendungen heißt VBA – Visual Basic for Applications. Und auch wenn die Tools abseits des VBA-Editors, mit denen wir die Funktion von Office-Anwendungen erweitern wollen, teils andere Programmiersprachen wie VB.NET oder twinBASIC nutzen, so gibt es doch so viele Gemeinsamkeiten, dass wir zuerst einmal die Programmiersprache VBA im Detail betrachten wollen. Den Anfang machen wir mit diesem Artikel, der als Schnellstart die wichtigsten Informationen rund um VBA liefert – und auch die Elemente der Entwicklungsumgebung beschreibt, die wir zum Ausprobieren der in dieser Artikelreihe vorgestellten Techniken benötigen.

Zum Artikel …

VBA-Basics: Variablen

Variablen sind die Möglichkeit unter VBA, bestimmte Werte wie Zahlen, Texte, Datumsangaben oder auch komplexere Elemente wie Verweise auf Objekte der Benutzeroberfläche der Office-Anwendungen oder auf selbst erstellte Objekte für den Zeitraum der Benutzung zu speichern und wieder abrufen zu können. Kurz gesagt: Mit Variablen merken wir uns verschiedene Dinge, die wir noch mal brauchen können. Dieser Artikel stellt die verschiedenen Basisdatentypen für Variablen vor und zeigt, wie wir diese deklarieren, mit Werten oder Verweisen füllen und diese wieder abfragen. Außerdem gehen wir auch auf den Gültigkeitsbereich, die Gültigkeitsdauer und die Frage der Benennung von Variablen ein.

Zum Artikel …