VBA Basics: Nz, IIf, Switch und Choose

Mit If…Then und Select Case entscheiden wir, welche Anweisungen VBA ausführt. Oft brauchen wir aber einen Wert, der von einer Bedingung abhängt, etwa einen Rabattsatz oder die Vorgabe für ein leeres Feld. Dafür stehen die Funktionen Nz, IIf, Switch und Choose zur Verfügung. Sie werten alle Parameter aus und liefern in bestimmten Fällen Null, was zu Fehlern führen kann. Wie die Funktionen arbeiten und wann wir besser If…Then verwenden, liest Du in diesem Artikel.

Weiterlesen

VBA Basics: Auflistungen mit Collections

Arrays haben eine feste Grösse – oder müssen mit ReDim Preserve umständlich vergrössert werden. Sobald wir eine Liste brauchen, die während der Laufzeit wächst und schrumpft, ist die Collection das Mittel der Wahl. Sie gehört zur VBA-Laufzeitbibliothek, steht ohne zusätzlichen Verweis in jedem Projekt zur Verfügung und lässt sich mit For Each durchlaufen. Dieser Beitrag zeigt, was die Collection kann, wo ihre Grenzen liegen und wie wir sie in der Praxis einsetzen.

Weiterlesen

VBA Basics: Auflistungen mit Dictionarys

Im Artikel „VBA Basics: Auflistungen mit Collections“ (www.vbentwickler.de/514) haben wir die Collection kennengelernt – eine einfache, geordnete Liste ohne Verweis. Ihr grösstes Manko: Es gibt keine Möglichkeit zu prüfen, ob ein Schlüssel existiert. Genau hier setzt das Dictionary aus der Microsoft Scripting Runtime an. Es bietet Exists, erlaubt das direkte Ändern von Werten und liefert Schlüssel und Werte als Array – damit ist es die erste Wahl für Duplikatprüfungen, Häufigkeitszählungen und Lookup-Tabellen im Speicher. Wie wir es einrichten, was es kann und wo Stolpersteine lauern, zeigt dieser Beitrag.

Weiterlesen

Backstage-Bereich von Access erweitern, Teil 1

Klickt man in Access auf den Registerreiter Datei, öffnet sich der sogenannte Backstage-Bereich. Hier findet man Befehle wie Speichern, Drucken oder Optionen sowie verschiedene Informationsbereiche. Was viele nicht wissen: Dieser Bereich lässt sich per XML-Definition umfangreich anpassen. Wir können eigene Befehle und Registerkarten hinzufügen, eingebaute Bereiche ausblenden und sogar vollständige Optionsseiten mit Textfeldern, Kontrollkästchen und Auswahllisten gestalten. In diesem Artikel zeigen wir Schritt für Schritt, wie das in Access funktioniert – direkt über die Systemtabelle USysRibbons und VBA-Callback-Prozeduren.

Weiterlesen

Reguläre Ausdrücke in VBA: Die neue RegExp-Klasse

Seit Office Version 2508 sind reguläre Ausdrücke direkt in die VBA-Objektbibliothek integriert. Damit entfällt der bisherige Umweg über einen externen Verweis auf die VBScript-Bibliothek. Dieser Artikel erklärt die Hintergründe dieser Änderung, stellt alle Klassen und ihre Mitglieder vor und zeigt anhand zahlreicher Beispiele, wie Du reguläre Ausdrücke in Deinen VBA-Projekten einsetzen kannst.

Weiterlesen

Dateien im SQL Server speichern mit FileTables

In Access gibt es verschiedene Möglichkeiten, Dateien zu speichern. Diese kann man zum Beispiel in Anlagefeldern ablegen, oder man belässt die eigentlichen Dateien im Dateisystem und notiert in den Tabellen lediglich den Pfad zu den Dateien oder auch nur die Dateinamen. Welche Variante man wählt, hängt letztlich von der Menge und der Größe der Dateien ab, sprich: vom benötigten Speicherplatz. Der ist nämlich in Access-Datenbanken auf zwei Gigabytes begrenzt. In SQL Server-Datenbanken sieht dies ganz anders aus. Selbst bei Verwendung der kostenlosen Express-Edition dürfen die einzelnen Datenbank-Dateien bis zu zehn Gigabytes an Platz auf der Festplatte einnehmen. Auch hier gibt es verschiedene Varianten zum Speichern der Dateien. Die erste ist, die Dateien in varbinary(max)-Feldern zu hinterlegen. Oder man nutzt dazu sogenannte Filetables. Hier werden die Dateien in einem speziell dazu vorgesehenen Bereich der Festplatte abgelegt, aber unter die Kontrolle des SQL Servers gestellt – und gleichzeitig über einen speziellen Typ von Tabelle verwaltet. Wie das gelingt, zeigen wir in diesem Artikel.

Weiterlesen

Backstage-Bereich per COM-Add-In anpassen

Wenn man eine der Office-Anwendungen um ein selbst programmiertes COM-Add-In erweitern möchte, kann man den Backstage-Bereich nutzen, um eventuell notwendige Optionen für dieses COM-Add-In dort abzubilden. Wir würden dann einen eigenen Reiter auf der linken Seite des Backstage-Bereichs platzieren, über den wir einen eigenen Bereich anzeigen können. Diesem wiederum können wir verschiedene Steuerelemente für die Anzeige und Eingabe von Optionen hinzufügen. Dieser Artikel zeigt, wie wir ein einfaches COM-Add-In mit twinBASIC erstellen und dieses mit der Definition einer Backstage-Erweiterung ausstatten und wie diese Erweiterung beim Starten der Anwendung angezeigt wird.

Weiterlesen

PowerPoint: Texte automatisiert übersetzen

Neulich war es mal wieder so weit: Eine PowerPoint-Präsentation musste her. Und das auch noch auf Englisch. Okay, das Schul-Englisch ist zum Verstehen und schriftliche Kommunikation ausreichend, aber eine PowerPoint-Präsention für englischsprachiges Fachpublikum sollte schon annährend perfekt sein. Wozu gibt es Übersetzungsdienste? Also habe ich meine Texte auf Deutsch zurechtgelegt und diese von der KI übersetzen lassen. Dann habe ich alles in die PowerPoint-Präsentation eingefügt und noch die Animationen hinzugefügt, damit beispielsweise Stichpunkte Schritt für Schritt eingeblendet werden können. All das hat so gut geklappt, dass ich die Präsentation anschließend auch noch für ein Video aufbereiten wollte – diesmal jedoch auf Deutsch. Also habe ich erstmal eine komplette Seite kopiert, übersetzen lassen und wieder zurückgeschrieben. Das habe ich für einige Folien gemacht und dann schnell festgestellt, dass so alle Animationen verloren gehen. Der nächste Ansatz dann: Absatz für Absatz in die Zwischenablage, übersetzen lassen, wieder zurückschreiben. So blieben die Animationen erhalten, aber es war zu viel Handarbeit. Wozu beherrsche ich – im Gegensatz zu Englisch – eigentlich perfekt VBA? Also habe ich mich an die Programmierung der Übersetzung der enthaltenen Texte begeben. Das Ergebnis siehst Du in diesem Artikel!

Weiterlesen

PowerPoint-Übersetzung per COM-Add-In

Im Artikel „PowerPoint: Texte automatisiert übersetzen“ (www.vbentwickler.de/437) haben wir VBA-Code produziert, mit dem wir alle Absätze aller Folien in einem PowerPoint-Dokument automatisch übersetzen können. Dabei nutzen wir den Dienst DeepL. Leider müssen wir, um diesen Code in einem PowerPoint-Dokument verwenden zu können, das Modul erst in das jeweilige Dokument integrieren. Wenn man oft PowerPoint-Folien übersetzen muss, ist das recht aufwändig. Da nehmen wir lieber den Aufwand in Kauf, einmal ein COM-Add-In für diesen Zweck zu programmieren, dass wir dann auch noch an Dich weitergeben können, damit Du es für Dich und Deine Mitarbeiter und/oder Kunden einsetzen kannst.

Weiterlesen

Installation mit Inno Setup: Bilder und Images

Wie heißt es so schön: Das Auge isst mit. Das gilt nicht nur bei der Nahrungsaufnahme, sondern auch beim Konsum der Optik eines Setups. Mit Inno Setup können wir an verschiedenen Stellen Icons und Images unterbringen. Wie das gelingt, welche Tricks man dabei anwenden kann und wie wir eventuelle Stolpersteine umgehen, schauen wir uns im vorliegenden Artikel an. Dabei stoßen wir an unerwarteter Stelle an die Grenzen, die uns der Windows Defender auferlegt. Doch eins nach dem anderen: Erst einmal schauen wir, wo wir in einen mit Inno Setup erstellten Setup Icons und Bilder unterbringen können.

Weiterlesen