OpenAI mit VBA

Schlagwörter wir OpenAI oder ChatGPT beherrschen die Schlagzeilen der Welt. Wir wollen nicht entscheiden, ob es gut oder schlecht ist. ob es Dir den Job wegnimmt oder eine super Unterstützung ist, sondern zeigen in diesem Artikel einfach, wie Du es per VBA steuern und in eigenen Anwendungen nutzen kannst. Dabei greifen wir auf die Rest API von OpenAI zu und ermöglich, dass Du die Antworten auf die mit der Anwendung eingegebene Frage nutzen kannst.

Weiterlesen

PDFs aufteilen und zusammenfügen mit .NET

Gelegentlich möchte man PDF-Dateien bearbeiten – und das am besten ohne eigenes Zutun, sondern komplett programmgesteuert. Ein Kunde ist beispielsweise an mich herangetreten und wollte ein riesiges PDF-Dokument, das eine Menge Rechnungen in einer einzigen Datei enthielt, aufteilen. Als Ergebnis wünscht er sich einzelne Dateien, die jeweils eine Rechnung enthielten. Grund genug, einmal zu schauen, wie man mit .NET an dieses Problem herangehen kann. Genügend NuGet-Pakete mit Funktionen zum Bearbeiten von PDF-Dokumenten sind verfügbar, sodass wir die Qual der Wahl haben. Für diese Aufgabe haben wir das NuGet-Paket PDFsharp herangezogen, das verspricht, mit PDF-Seiten umgehen zu können – egal, ob es um das Entfernen, Hinzufügen, Extrahieren oder Zusammenstellen neuer Dokumente geht.

Weiterlesen

Standalone-Apps mit .NET programmieren

Nicht immer möchte man Erweiterungen gezielt für eine Office-Anwendung programmieren. Gelegentlich fallen Aufgaben an, die man zwar mit einer der Office-Anwendungen erledigen könnte, aber dazu benötigt man auch immer die jeweilige Office-Anwendung und eine passendes Dokument wie ein Excel-Workbook oder eine Access-Datenbank. Und gerade bei Access ist eine der meist gestellten Fragen: Wie kann ich die Datenbank in eine .exe-Datei umwandeln? Die Antwort lautet: Gar nicht. Wenn es aber allein darum geht, Aufgaben zu erledigen, die nicht unbedingt mit Office zusammenhängen, dann könnte man auch schnell eine .NET-App programmieren. Die hat den Vorteil, dass man erstens viel mehr Steuerelemente nutzen kann, zweitens viel mehr Bibliotheken zur Verfügung hat und drittens eine .exe erstellen kann, die man sogar noch weitergeben kann. In diesem Artikel schauen wir uns die Grundlagen für die Erstellung einer einfachen .exe-Datei mit .NET an.

Weiterlesen

Anwendungsdaten speichern per VB.NET

Wenn man wie im Artikel “Standalone-Apps mit .NET programmieren” beschrieben kleine Hilfsprogramme erstellt, kommt es vor, dass man dort Daten eingibt, die auch nach dem Schließen und dem erneuten Öffnen der Anwendung noch erhalten sein sollen. Wenn Du in einer solchen Anwendung beispielsweise immer wieder Daten aus dem gleichen Verzeichnis verarbeiten möchtest, willst Du das Verzeichnis nicht jedes Mal erneut auswählen. Man kann damit auch andere Daten wie Verbindungszeichenfolgen, Benutzernamen für Logins oder ganz allgemein Optionen speichern. All dies könnte man auch in einer Datenbank speichern, aber wenn die Menge der Daten überschaubar ist, erhalten wir mit der in diesem Artikel vorgestellten Lösung eine wesentlich leichtgewichtigere Alternative.

Weiterlesen

AfterUpdate für WPF-Steuerelemente mit VB.NET

Wenn man einfache Anwendungen wie im Artikel “Standalone-Apps mit .NET programmieren” beschrieben erstellt, stößt man relativ schnell an Grenzen. Eine davon sind die verfügbaren Ereignisse für Steuerelemente. Wer einmal mit Access gearbeitet hat, weiß, dass es für jedes Steuerelement ein Ereignis wie “Nach Aktualisierung” gibt. Unter WPF ist das nicht der Fall, was an der zugrunde liegenden Philosophie liegt. Diese lautet, dass Benutzeroberfläche und Anwendungslogik so weit wie möglich getrennt werden sollen. In diesem Artikel zeigen wir anhand eines Beispiels, wie sich dies in der Praxis auswirkt.

Weiterlesen

Mit JSON arbeiten

JSON heißt JavaScript Object Notation und ist ein Format ähnlich wie XML, mit dem Daten strukturiert gespeichert werden können. Als Visual Basic-Entwickler hat man üblicherweise nicht viele Berührungspunkte mit dieser Notation. Wenn man jedoch gelegentlich mit Webservices beziehungsweise Rest APIs arbeitet, findest der Datenaustausch entweder mit XML oder JSON statt. Während es für den Zugriff auf den Inhalt von XML-Dokumenten die Microsoft XML, vX.0-Bibliothek gibt, ist man bei JSON auf Lösungen von Drittherstellern angewiesen. In diesem Fall nutzen wir eine Bibliothek von Tim Hall und eine Erweiterung im Eigenbau, mit der wir relativ einfach auf die Daten in JSON-Dokumenten zugreifen können.

Weiterlesen

VBA-Ereignisse in Word programmieren

Microsoft Word bietet für das Application- und für das Document-Objekt einige sehr interessante Ereignisse an. Diese können wir implementieren und damit auf verschiedene Benutzeraktionen wie das Öffnen, Speichern oder Schließen eines Dokuments oder auch auf andere Aktionen zu reagieren. In diesem Artikel stellen wir die Ereignisse vor und zeigen, wie Du diese implementieren und mit eigenem Code füllen kannst. Damit lernst Du, wie Du auf das Öffnen, Schließen oder Anlegen von Dokumenten reagieren kannst oder wie sich Ereignisse programmieren lassen, die beim Drucken oder Speichern ausgelöst werden. Auch Aktionen wie ein Doppelklick oder ein Rechtsklick auf die Inhalte des Word-Dokuments lassen sich damit steuern. Wie das gelingt, zeigen wir in diesem Artikel.

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

Rechnungen mit Word und Access

Office bietet verschiedene Möglichkeiten, um Rechnungen zu erstellen. Du kannst ein Worksheet in Excel dazu nutzen, eine Rechnung zu erstellen, die Berichte unter Access eignen sich recht gut dafür, aber auch Word lässt sich prima zum Erstellen von Rechnungen nutzen. Alle haben Vor- und Nachteile: Unter Excel gerät das Berechnen von Beträgen zum Kinderspiel, während mehrseitige Rechnungen eher schwierig zu realisieren sind, unter Access können Berichte recht flexibel realisiert werden, während man sich gerade für mehrseitige Berichte etwas einarbeiten muss – und unter Word kann man das Layout sehr einfach anpassen, während hier die Berechnung nicht so intuitiv erfolgt. Wir schauen uns eine Kombination aus Access und Word an: Die Daten stammen aus Access-Tabellen, während wir die Rechnung selbst in Word erstellen. So lassen sich auch nach dem Erstellen noch Feinheiten anpassen.

Weiterlesen

Word: Tabellen mit VBA programmieren

Tabellen sind ein wichtiges Element zur Strukturierung in Dokumenten – so auch in Microsoft Word. Tabellen fügt man dabei normalerweise über die Benutzeroberfläche ein und füllt diese manuell mit den gewünschten Daten. Manchmal jedoch sollen Dokumente und damit auch Tabellen automatisiert erstellt werden – beispielsweise, wenn man Daten aus Anwendungen wie Access oder Excel in einem Word-Dokument weiterverarbeiten möchte. Damit lassen sich beispielsweise gut die Rechnungspositionen in einer Rechnung oder auch Katalogdaten abbilden. In einer Lösung in einem weiteren Artikel nutzen wir eine Tabelle, um die einzelnen Absätze verschiedener Übersetzungen eines Textes anzuzeigen. Im vorliegenden Artikel zeigen wir, wie wir einem Word-Dokument eine Tabelle hinzufügen und diese mit den gewünschten Zeilen und Spalten versehen können – und welche Techniken noch sinnvoll sein können, wenn Du Tabellen programmierst.

Weiterlesen