Rest-APIs mit VBA programmieren

Wer mit VBA arbeitet, kommt heute kaum noch daran vorbei: Fast jeder interessante Online-Dienst – von Wetter- und Geo-Daten über Projektmanagement-Tools bis hin zu KI-Diensten – bietet eine Rest-API an. Dabei ist das Prinzip immer dasselbe: Du schickst eine HTTP-Anfrage an eine bestimmte URL, und der Dienst antwortet mit strukturierten Daten – in der Regel im JSON-Format. Ob Du Kundenadressen mit einem CRM abgleichen, Versandetiketten bei DHL anfordern, Aufgaben in Trello anlegen oder Texte mit DeepL übersetzen willst – hinter all diesen Integrationen steckt dieselbe Technik. VBA bringt dafür alle nötigen Werkzeuge von Haus aus mit: Ein einziger Verweis auf eine Windows-Systembibliothek genügt, um HTTP-Anfragen abzusetzen und die Antworten auszuwerten. Dieser Artikel erklärt, was eine Rest-API überhaupt ist, welche Grundbegriffe Du kennen musst, um jede beliebige API-Dokumentation selbstständig zu lesen, und wie Du eine wiederverwendbare Funktion baust, die Du als solide Basis für jeden weiteren API-Aufruf einsetzen kannst.

Weiterlesen

Textdateien und Stream mit dem FileSystemObject

Im Artikel Dateimanagement mit dem FileSystemObject (www.vbentwickler.de/478) haben wir die Klasse FileSystemObject kennengelernt und damit Laufwerke, Verzeichnisse und Dateien verwaltet. Dabei haben wir drei Methoden und Funktionen erwähnt, die wir in einem separaten Artikel behandeln wollten: CreateTextFile, OpenTextFile und OpenAsTextStream. Diese drei Elemente sind das Tor zur Klasse TextStream, mit der wir Textdateien erstellen, beschreiben und auslesen können. In diesem Artikel schauen wir uns zuerst an, wie wir TextStream-Objekte erzeugen, und gehen dann alle Eigenschaften und Methoden der Klasse durch. Abschließend bauen wir ein praxisnahes Beispiel, in dem wir eine CSV-Datei erzeugen und wieder einlesen.

Weiterlesen

VBA: Datei-Icons einlesen und speichern

Symbole und Icons spielen in Microsoft-Access-Anwendungen eine oft unterschätzte Rolle. Dabei können sie die Bedienbarkeit und Verständlichkeit einer Datenbank erheblich verbessern – insbesondere dann, wenn Dateien, Ordner oder Dokumenttypen visuell unterschieden werden sollen. Während Access für viele Steuerelemente wie TreeView, ListView, Symbolleisten oder Ribbon-Schaltflächen grundsätzlich Icon-Unterstützung bietet, stellt sich in der Praxis häufig die Frage:Wie lassen sich die echten System-Icons von Dateien – so wie sie auch im Windows-Explorer angezeigt werden – in einer Access-Anwendung verwenden? Genau das zeigen wir in diesem Artikel und liefern auch noch das Know-how, um die eingelesenen Icons direkt in der Tabelle MSysResources zu speichern. Von dort können wir sie beispielsweise in ein ImageList-Steuerelement schreiben – um sie dann in TreeView- und ListView-Steuerelementen anzuzeigen.

Weiterlesen

Dateimanagement mit dem FileSystemObject

VBA bietet bereits einige Befehle, mit denen wir Dateioperationen ausführen können. Wir können mit MkDir neue Verzeichnisse erstellen, mit Dir prüfen, ob Dateien oder Verzeichnisse vorhanden sind oder mit Kill Dateien löschen. Diese Befehle sind aber recht kompliziert in der Handhabung. Daher schauen wir uns in diesem Artikel einmal die Klasse “FileSystemObject” an, mit der wir deutlich komfortabler mit Dateien und Verzeichnissen arbeiten können. Damit lässt sich alles erledigen, was mit dem Anlegen, Kopieren, Verschieben und Löschen zusammenhängt – und vieles mehr.

Weiterlesen

Microsoft 365-Mail mit Make und VBA ohne Outlook

Am liebsten wäre den meisten Microsoft-Anwendern vermutlich, wenn sie einfach ihre vorhandenen VBA-Automationen auf Basis von Microsoft Outlook verwenden könnten. Allerdings zeigt Microsoft aktuell kein Zeichen, dass das klassische Outlook für Desktop mit seiner VBA-Programmierbarkeit über das Jahr 2029 hinaus unterstützt werden wird. Die neue Outlook-Version ist allerdings noch nicht so weit, dass wir damit so arbeiten können, wie es mit der klassischen Version möglich ist. Genau genommen wird das, wenn man sich die Pläne von Microsoft ansieht, auch zumindest per VBA nicht mehr möglich sein. Um zumindest das Versenden von E-Mails von VBA aus zu realisieren, benötigen wir also eine Alternative. In diesem Artikel schauen wir uns an, wie wir Outlook.com über den Automatisierungdienst Make dazu bringen, E-Mails zu versenden – mit allen Funktionen, die wir von Outlook gewohnt sind.

Weiterlesen

Microsoft 365 E-Mails mit Make per Klasse senden

In unserem Artikel Google Mail mit Make.com und VBA statt Outlook (www.vbentwickler.de/464) haben wir detailliert gezeigt, wie man per VBA die Informationen zum Versenden einer E-Mail zusammenstellt und diese dann über den Automatisierungsdienst Make.com an Microsoft 365 E-Mail sendet. Hier sind wir allerdings nur so weit gekommen, dass wir die notwendige JSON-Datei mit den eigentlichen Daten der E-Mail Zeile für Zeile zusammengestellt und mit den nötigen Daten gefüllt haben. Für einen ersten Schritt nicht schlecht, aber wenn man diesen Weg professionell nutzen möchte, sollte man sich dazu eine ordentliche Klasse bauen. Eine, die man schnell initialisieren und mit den Daten wie Empfänger, Betreff, Inhalt, CC/BCC-Empfängern und Anlagen füllen kann und die eine einfache Send-Methode enthält. Ganz genau so, wie es auch mit VBA und Outlook geht – mit dem Unterschied, dass die hier vorgestellte Methode vermutlich wesentlich bessere Chancen hat, die nächsten fünf Jahre zu überleben.

Weiterlesen

Word: Dokument mit Ribbon und VBA-Funktionen

Nicht jeder, der seine Word-Dokumente mit ein paar zusätzlichen VBA-Funktionen ausstatten möchte, will direkt ein COM-Add-In dafür programmieren. Das ist auch nicht nötig, denn wir können solche Funktionen auch einfach zu einem Word-Dokument hinzufügen und die Funktionen in einem integrierten Ribbon verfügbar machen. Wie das gelingt, zeigen wir an einem einfachen Beispiel. Dabei wollen wir das aktuelle Dokument als PDF-Dokument in das gleiche Verzeichnis wie das Dokument exportieren. Einem zweiten Ribbonbefehl fügen wir noch einen Schritt hinzu, der das frisch erstellte PDF-Dokument direkt in die Zwischenablage kopiert, damit es beispielsweise gleich in eine E-Mail eingefügt werden kann.

Weiterlesen

Word: PDF per VBA erzeugen

Wenn man ein Dokument per VBA zusammengestellt hat, möchte man dieses gegebenenfalls auch noch weiterverarbeiten. Zum Beispiel, indem man es unter einen bestimmten Dateinamen speichert. Eine weitere Anforderung könnte sein, dass man das Dokument direkt als PDF-Dokument sichern möchte. Wie das gelingt, schauen wir uns in diesem Artikel an. Und wir gehen noch einen Schritt weiter und betrachten, wie wir bestimmte Bereiche oder auch jede einzelne Seite in einem PDF-Dokument speichern können.

Weiterlesen

Word-Vorlage für Anschreiben erstellen

Manchmal gibt es Situationen, da benötigt man das gute, alte Anschreiben. Adresse eintragen, Betreff hinzufügen, Ort und Datum festlegen und schließlich noch den Inhalt schreiben. Wenn man das nur hin und wieder machen muss, wie es bei mir der Fall ist, kann es schon mal sein, dass man nicht mehr weiß, wo man die Vorlage gespeichert hat, die man beim vorherigen Mal genutzt hat. Oder wo überhaupt ein Word-Dokument ist, das man bereits erstellt hat und dass man kopieren, anpassen und ausdrucken kann. Auf diese Weise braucht man nicht bei Adam und Eva anzufangen und den Briefkopf neu zu erstellen und die gute alte DIN-Norm herauszusuchen, die Informationen über die Positionen der einzelnen Elemente enthält. In diesem Artikel schauen wir uns an, wie wir eine passende Vorlage erstellen; in einem weiteren, wir wir diese aus einem Formular heraus mit den gewünschten Informationen füllen.

Weiterlesen

Word: Lesen und Schreiben von Absätzen per VBA

Nachdem wir in zwei weiteren Artikeln beschrieben haben, wir man auf Word-Dokumente zugreift und die Ereignisse von Word und den angezeigten Dokumenten nutzt, gehen wir nun einen Schritt weiter: Wir schauen uns an, wie wir die Inhalte von Word-Dokumenten lesen und schreiben können. Das ist nicht ganz trivial, denn natürlich enthält ein Word-Dokument nicht einfach nur Text, den wir in eine Variable übertragen und weiterverarbeiten können. Stattdessen gibt es eine Unterteilung in Absätze, Bereiche, Tabellen und viele weitere Elemente. Der Fokus dieses Artikels liegt daher auf der Untersuchung dieser Elemente und wie wir diese am besten per VBA programmieren können.

Weiterlesen