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.

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

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

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

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

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

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

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.

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

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