Wozu mit Klassen programmieren?

Wer die Office-Anwendungen Access, Excel, Outlook, PowerPoint oder Word mit VBA programmiert, kann eine Menge erreichen, ohne jemals eine eigene Klasse zu programmieren. Wer sich die gesamten Möglichkeiten eröffnen will, kommt jedoch irgendwann nicht mehr um die Programmierung benutzerdefinierter Klassen herum. Dieser Artikel zeigt verschiedene Szenarien auf, wann man benutzerdefinierte Klassen programmieren und darauf basierende Objekte instanziieren kann und soll. Dabei geht es um Begriffe wie Eigenschaften, Methoden, Ereignisse und darum, wo und wie man Klassen einsetzt.

Weiterlesen

Ereignisse in Klassen programmieren

Eines der wichtigsten Features vieler eingebauter Klassen in den Office-Anwendungen sind die Ereignisse. Damit können wir Ereignisprozeduren implementieren, mit denen wir beispielsweise auf das Anklicken von Schaltflächen, dem Öffnen oder Schließen von Dokumenten oder dem Wechseln eines Tabellenblatts in einem Excel-Arbeitsblatt reagieren können. Wenn man selbst Klassen programmiert, findet sich früher oder später ein Anlass, dieser ein eigenes Ereignis hinzuzufügen, dass durch eine bestimmte Aktion ausgelöst wird. Dieser Artikel zeigt, wir wie solche Ereignisse programmieren und auslösen und wie wir diese in Form von Ereignisprozeduren in den Klassen implementieren, welche das entsprechende Objekt instanziiert haben.

Weiterlesen

Klassen programmieren unter VBA

Neben den Standardmodulen gibt es in VBA-Projekten auch noch einen weiteren Typ von Modulen, nämlich die Klassenmodule. Diese kommen wiederum in zwei Ausführungen: Es gibt alleinstehende Klassenmodule und eingebaute Klassenmodule, die den Code zu bestimmten Objekten enthalten – wie beispielsweise die Klassenmodule zu Formularen und Berichten in Access, zu Word-Dokumenten für das Dokument oder in Excel für Worksheet und Workbook. Auch in Outlook gibt es Klassenmodule. Wir wollen uns an dieser Stelle jedoch auf die alleinstehenden Klassenmodule konzentrieren, also auf solche, die wir selbst anlegen müssen. Hier schauen wir uns an, warum man diese überhaupt nutzen sollte, welche Anwendungszwecke es gibt und welche Best Practices sich für uns etabliert haben.

Weiterlesen

Outlook: Ereignisse für Termine implementieren

Wenn wir Aufgaben erledigen wollen, die in Zusammenhang mit dem Anlegen, Bearbeiten oder Löschen von Terminen zu tun haben, kommen wir nicht um die Programmierung der Ereignisse von Terminen herum. Die Ereignisse eines Termins selbst zu implementieren ist halbwegs intuitiv, aber wo finden wir zum Beispiel die Ereignisprozedur, die ausgelöst, wenn wir einen neuen Termin anlegen? Der Termin selbst kann dieses Ereignis noch nicht enthalten, denn es gibt ihn ja zu diesem Zeitpunkt noch nicht. Tatsächlich wollen wir auch erst auf das Speichern des neuen Termins reagieren. Dazu müssen wir diesen aber dennoch erst einmal mit einer geeigneten Objektvariablen referenzieren. Wie das gelingt und wie wir alle notwendigen Ereignisse bei der Nutzung eines Termins implementieren können, zeigen wir in diesem Artikel.

Weiterlesen

Anwendungsdaten in der Registry

Wenn man es gewohnt ist, mit Access zu arbeiten, liegt es nahe, Anwendungsdaten wie Optionen et cetera in einer Tabelle der Datenbankdatei zu speichern. Unter Excel, Word, Outlook oder auch für twinBASIC-Anwendungen ist das nicht so einfach. Wir könnten zwar eine Datenbank zu diesem Zweck heranziehen, aber je nach Anwendungsfall gibt es praktischere Lösungen – zum Beispiel Textdateien, XML-Dateien oder auch die Registry. Letztere schauen wir uns in diesem Artikel an. Wie können wir dort Einstellungen sichern und wieder abrufen? Wo in der Registry landen diese dann? Können wir überhaupt per VB, VBA und twinBASIC darauf zugreifen? All dies klären wir auf den folgenden Seiten.

Weiterlesen

JSON-Dokumente per Objektmodell zusammenstellen

.NET bietet sehr viele Steuer-elemente. Viel mehr als beispielsweise Microsoft Access. Und auch wenn man unter Access mit den eingebauten Steuerelementen die meisten Aufgaben im Bereich einer Datenbanksoftware erledigen kann, wünschen sich viele Entwickler, auch einmal andere Steuer-elemente nutzen zu können. Wir untersuchen in diesem Artikel, ob und wie wir .NET-Steuerelemente unter Access einbinden und in Formularen anzeigen können.

Weiterlesen

twinBASIC: Menüs erstellen

Während man sich beim Programmieren von Office-Anwendungen wie Word, Excel, Outlook oder Access mit XML-Definitionen für das Ribbon beschäftigen muss, kann man unter twinBASIC zumindest für die Fenstermenüs auf eine einfache und praktische Benutzeroberfläche zurückgreifen. Okay, für Kontextmenüs ist dann doch wieder VB-Code gefragt, aber das ist auch in den meisten Office-Anwendungen noch die gängige Vorgehensweise (nicht in Outlook, dort sind die Kontextmenüs bereits in die Ribbondefinition integriert). In diesem Artikel schauen wir uns erst einmal die Möglichkeiten an, twinBASIC-Anwendungen über die Benutzeroberfläche mit Menüs auszustatten und ihre Eigenschaften per Code anzupassen.

Weiterlesen

twinBASIC: Ereigniseigenschaften von Fenstern

Im Artikel twinBASIC: Forms öffnen, schließen und mehr (www.vbentwickler.de/389) haben wir bereits gezeigt, wie wir Fenster beziehungsweise Form-Elemente mit twinBASIC-Befehlen öffnen und schließen können und welche Varianten es dabei gibt. Über ein wichtiges Feature von Form-Elementen haben wir dabei noch nicht gesprochen: Die sogenannten Ereigniseigenschaften. Für diese können wir Prozeduren hinterlegen, die beim Auslösen bestimmter Ereignisse des Fensters ausgelöst werden – beispielsweise beim Öffnen, Schließen, Aktivieren, Deaktivieren oder auch beim Ändern der Größe oder der Position eines Fensters. Und auch wenn der Benutzer das Fenster an einer Stelle anklickt, die keine Steuerelemente enthält, wird ein Ereignis ausgelöst, auf das wir reagieren können. Wie wir solche Ereigniseigenschaften nutzen können und wir Du diese anlegst, zeigen wir in diesem Artikel.

Weiterlesen

Outlook: Anhang speichern per Kontextmenü

Das Speichern von Anhängen in E-Mails gelingt in Outlook recht einfach: Man öffnet die E-Mail, klickt mit der rechten Maustaste auf den Anhang und wählt aus dem Kontextmenü den Eintrag “Speichern unter” aus. Danach allerdings fragt Outlook den Speicherort für den Anhang ab und hier startet man immer im gleichen Verzeichnis – in der Regel das Dokumente-Verzeichnis des aktuellen Benutzers. Dieser Artikel zeigt, wie wir dieses Verzeichnis auf ein anderes Verzeichnis einstellen können, aber das reicht in vielen Fällen nicht aus: Rechnungen sollen in ein bestimmtes Verzeichnis gespeichert werden, Anfragen von Kunden in einem bestimmten Verzeichnis für den jeweiligen Kunden et cetera. Diese Aufgaben werden wir mit einem Tool vereinfachen, das gleich im Kontextmenü die Möglichkeit zum Speichern in verschiedenen Verzeichnissen bietet. Und noch mehr: Wir wollen das Tool so programmieren, dass der Benutzer selbst eintragen kann, welche Kontextmenü-Einträge zum Speichern in verschiedenen Verzeichnissen genutzt werden können.

Weiterlesen