Excel: Add-In mit Ribbon-Button erstellen
Wir können Excel nicht nur um benutzerdefinierte Funktionen erweitern, die wir in eine Add-In-Datei schreiben und die dann überall als Formel verfügbar sind. Wir können auch Funktionen hinzufügen, mit denen wir die Anwendung um selbst programmierte Abläufe erweitern. In diesem Artikel zeigen wir, wie Du einem Excel-Add-In ein eigenes Ribbontab hinzufügst sowie eine Funktion, die durch einen Button auf diesem Ribbontab ausgelöst wird.
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.
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.
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.
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.
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.
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.
Excel: Benutzerdefinierte Funktionen per Add-In
Benutzerdefinierte VBA-Funktionen lassen sich leicht zu einem Excel-Workbook hinzufügen. Sie sind dann aber normalerweise nur in dem entsprechenden Workbook verfügbar. Was aber, wenn Du richtig coole Funktionen entwickelt hast, die Du nicht nur in einem Workbook nutzen möchtest, sondern in verschiedenen Dateien – und Du hast keine Lust, den VBA-Code immer wieder in das VBA-Projekt neuer Workbooks zu kopieren? In diesem Fall gibt es gute Nachrichten: Excel bietet nämlich den Dateityp Excel-Add-In an, dem Du Funktionen hinzufügen kannst, die immer verfügbar sind, wenn Excel geöffnet ist.
QR-Codes per .NET-Anwendung erstellen
QR-Codes sind praktische Helfer in der heutigen Zeit der Smartphones und ihren Kameras. Man kann damit wichtige Informationen so codieren, dass man diese mit der Kamera erkennen und weiterverarbeiten kann – standardmäßig so, dass der Code eine URL zu einer Webseite erhält und man diese dann im Browser des Smartphones aufrufen und die Inhalte konsumieren kann. Dieser Artikel zeigt, wie Du QR-Codes mit .NET-Anwendung erstellen kannst. Dreh- und Angelpunkt ist dabei ein NuGet-Paket, das die Funktionen für die Erstellung von QR-Codes auf Basis verschiedener Informationen bereitstellt. Der Artikel zeigt, wie wir dieses Paket in ein .NET-Projekt einbinden und es dann nutzen können.