Kalender forever
Teil 3: VBA: Geburts-/Festtagskalender
- VBA: Geburts-/Festtagskalender
- Teil 2: VBA: Geburts-/Festtagskalender
- Teil 3: VBA: Geburts-/Festtagskalender
- Teil 4: VBA: Geburts-/Festtagskalender
- Teil 5: VBA: Geburts-/Festtagskalender
- Teil 6: VBA: Geburts-/Festtagskalender
- Teil 7: VBA: Geburts-/Festtagskalender
- Teil 8: VBA: Geburts-/Festtagskalender
- Teil 9: VBA: Geburts-/Festtagskalender
- Teil 10: VBA: Geburts-/Festtagskalender
Hinter der sichtbaren Oberfläche wirken einige Makros, Userform-Dialogfelder und Ereignisprozeduren, die die Funktionalität und die Berechnungen der Vorlage bereitstellen. Sobald der Anwender beispielsweise ein neues Dokument auf der Grundlage der Kalendervorlage erzeugt, tritt die Ereignisprozedur Document_ New aus dem Klassenmodul ThisDocument in Aktion.

Die Ereignisprozedur stellt die Ansicht Seitenlayout und den Zoomfaktor auf Seitenbreite ein, so dass der Anwender möglichst viele Einzelheiten der Vorlage überblicken kann. Anschließend liest die Prozedur den aktuell eingestellten Monat sowie das Jahr aus der vorlageneigenen Symbolleiste und beauftragt das KalenderErstellen-Makro (dazu später im Artikel mehr) damit, einen passenden Kalender zu generieren.
Ein Klick auf die Jahrestage-bearbeiten-Schaltfläche in der Symbolleiste aktiviert das gleichnamige Makro, das sich auf den Aufruf eines Dialogfelds für die Eingabe respektive Bearbeitung der Jahrestage beschränkt.

Das Userform-Dialogfeld trägt den Namen frmJahrestage und ist mit einem Listenfeld für die Anzeige der Jahrestage (lstListe), drei Schaltflächen für deren Bearbeitung (cmdNeu, cmdEdit und cmdLöschen) sowie den beiden Standardschaltflächen OK (cmdOK) und Abbrechen (cmdCancel) bestückt. Der Start des Dialogfelds ruft die Ereignisprozedur Userform_ Initialize auf den Plan.
Die Ereignisprozedur weist dem Listenfeld zwei Spalten zu und trägt darin alle derzeit gespeicherten Jahrestage (linke Spalte) sowie die zugehörigen Termine (rechte Spalte) ein. Die notwendigen Informationen stellt eine For- Each-Next-Schleife zur Verfügung, die die gewünschten Informationen aus Dokumentvariablen liest, die in der Vorlage (ThisDocument) gespeichert sind.