Ereignisse aus VB.NET-COM-DLLs implementieren

Viele Szenarien, in denen man eine COM-DLL benötigt, kann man mit einer VB6-COM-DLL auf Basis von twinBASIC abbilden. Manchmal möchte man aber auf Funktionen zugreifen, die einfacher mit einem VB.NET-Projekt zu erledigen sind. In diesem Artikel schauen wir uns nicht nur an, wie wir einen COM-DLL mit VB.NET erstellen, sondern legen den Fokus auf das Bereitstellen von Ereignissen und wie wir diese in dem VBA-Projekt, welches die COM-DLL nutzt, implementieren können.

Weiterlesen

eBay per VBA steuern: Angebote suchen

Im ersten Teil der Artikelreihe zum Thema Steuerung von eBay mit VBA haben wir gezeigt, wie man einen Entwickler-Account anlegt, eine neue Anwendung bei eBay erstellt, grundlegende Zugriffsdaten holt und die für die Authentifizierung im Kontext eines bestimmten Benutzerkontos notwendigen Informationen holt – hier speziell das Authentifizierungstoken. Damit haben wir die Basis geschaffen, um per VBA auf die Rest API von eBay zuzugreifen. Damit fahren wir in diesem Teil fort: Wir wollen den grundlegenden Zugriff auf die Rest-API von eBay herstellen und verwenden dazu einfache Beispiele. Wie sich zeigt, gibt es zwei verschiedene Kontexte, in denen wir hier arbeiten, den Anwendungs- und den Benutzerkontext. Beide beschreiben wir in diesem Artikel.

Weiterlesen

eBay per VBA steuern: Zugangsdaten holen

Im ersten Teil einer Artikelreihe zum Thema Steuerung von eBay mit VBA zeigen wir, wie man einen Entwickler-Account anlegt, eine neue Anwendung bei eBay erstellt, grundlegende Zugriffsdaten holt und die für die Authentifizierung im Kontext eines bestimmten Benutzerkontos notwendigen Informationen holt – hier speziell das Authentifizierungstoken. Damit schaffen wir die Basis, um per VBA auf die Rest API von eBay zuzugreifen. In weiteren Artikeln beschreiben wir den Zugriff und wie wir verschiedene Operationen wie das Anlegen von Angeboten realisieren können.

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

Google-Token per DLL holen

Wenn wir Daten eines Google-Kontos wie beispielsweise Google Calendar programmieren wollen, um diese abzurufen oder zu bearbeiten, benötigen wir verschiedene Dinge. Das erste ist eine Anwendung, die wir wie im Artikel “Google Calendar programmieren: Vorbereitungen” erläutern. Das erste Resultat ist die Definition einer Anwendung. Das zweite, wichtige Ergebnis sind zwei für den Zugang notwendige Daten, nämlich ClientID und ClientSecret. Mit diesen können wir dann online ein OAuth2-Token holen, das wir wiederum für den Zugriff auf die Rest-API von Google benötigen. Im vorliegenden Artikel zeigen wir, wie man ClientID und ClientSecret nutzt, um das begehrte Token auszulesen. Dazu erstellen wir eine COM-DLL, die wir von Office-Anwendungen, VB6 oder twinBASIC aus nutzen können, um über die Rest-API von Google beispielsweise auf Kalenderdaten zugreifen zu können.

Weiterlesen

twinBASIC: Menüs erstellen

Während man sich beim Programmieren von Office-Anwendungen wie Word, Excel, Outlook oder Access mit XML-Definitionen für das Ribbon beschäftigen muss, kann man unter twinBASIC zumindest für die Fenstermenüs auf eine einfache und praktische Benutzeroberfläche zurückgreifen. Okay, für Kontextmenüs ist dann doch wieder VB-Code gefragt, aber das ist auch in den meisten Office-Anwendungen noch die gängige Vorgehensweise (nicht in Outlook, dort sind die Kontextmenüs bereits in die Ribbondefinition integriert). In diesem Artikel schauen wir uns erst einmal die Möglichkeiten an, twinBASIC-Anwendungen über die Benutzeroberfläche mit Menüs auszustatten und ihre Eigenschaften per Code anzupassen.

Weiterlesen

Office-VBA per COM-DLL mit VB.NET erweitern

VBA ist, formulieren wir es einmal freundlich, seit einiger Zeit nicht mehr aktualisiert worden. Hier und da gibt es kleine Anpassungen in den Objektbibliotheken, aber der Sprachumfang an sich hat keine großen Schritte gemacht. Auch VB.NET bringt nicht täglich neue Sprachkonstrukte hervor. Aber dafür gibt es beispielsweise zahllose Erweiterungen in Form von NuGet-Paketen, die man leicht in einem VB.NET-Projekt verfügbar machen kann. Aus VB.NET-Projekten kann man aber auch eine COM-DLL erzeugen, die wir wiederum von einem VBA-Projekt aus referenzieren und nutzen können. Und somit können wir auch den Funktionsumfang von Word, Excel, Outlook, Access und Co. erweitern. Dieser Artikel zeigt die Grundlagen zur Erstellung eines COM-Add-Ins, das wir von unseren Office-Anwendungen aus nutzen können.

Weiterlesen

Outlook: Anhang speichern per Kontextmenü

Das Speichern von Anhängen in E-Mails gelingt in Outlook recht einfach: Man öffnet die E-Mail, klickt mit der rechten Maustaste auf den Anhang und wählt aus dem Kontextmenü den Eintrag “Speichern unter” aus. Danach allerdings fragt Outlook den Speicherort für den Anhang ab und hier startet man immer im gleichen Verzeichnis – in der Regel das Dokumente-Verzeichnis des aktuellen Benutzers. Dieser Artikel zeigt, wie wir dieses Verzeichnis auf ein anderes Verzeichnis einstellen können, aber das reicht in vielen Fällen nicht aus: Rechnungen sollen in ein bestimmtes Verzeichnis gespeichert werden, Anfragen von Kunden in einem bestimmten Verzeichnis für den jeweiligen Kunden et cetera. Diese Aufgaben werden wir mit einem Tool vereinfachen, das gleich im Kontextmenü die Möglichkeit zum Speichern in verschiedenen Verzeichnissen bietet. Und noch mehr: Wir wollen das Tool so programmieren, dass der Benutzer selbst eintragen kann, welche Kontextmenü-Einträge zum Speichern in verschiedenen Verzeichnissen genutzt werden können.

Weiterlesen

COM-DLL für den Zugriff auf die YouTube-API

In der Artikelreihe “Youtube-Kanal mit VB.NET verwalten” haben wir Methoden vorgestellt, mit denen wir die Videos eines Youtube-Kanals auslesen und mit denen wir neue Videos hochladen oder die Eigenschaften bestehender Videos anpassen können. Diese Methoden wollen wir nun in einer DLL zusammenfassen, die wir in eine Office-Anwendung wie Excel oder Access einbinden können, um von dort aus beispielsweise Titel und Beschreibungstexte lesen und schreiben können. Im vorliegenden Artikel zeigen wir daher, wie wir die bereits beschriebenen Funktionen in einem neuen Projekt verwenden und daraus die gewünschte DLL erstellen. In einem weiteren Artikel zeigen wir dann, wie Du von Excel aus die Daten der Videos eines Kanals in eine Excel-Tabelle einlesen kannst.

Weiterlesen

CSV-Datei in Klassen importieren

Unter Access war es einfach: Dort haben wir eine CSV-Datei oder auch Excel-Tabellen einfach als verknüpfte Tabelle eingebunden und konnten dann direkt auf die Daten zugreifen. Beispielsweise, um diese dann per Anfügeabfrage in die Zieltabelle zu schreiben. Unter Entity Framework ist das so nicht möglich. Natürlich könnte man das Öffnen der Datei von Hand realisieren und die einzelnen Elemente einlesen. Aber es gibt einen anderen, effizienteren Weg, den wir mit einem NuGet-Paket namens CsvHelper beschreiten können. Diese Klasse erlaubt es, die Zeilen einer CSV-Datei automatisch in die Elemente auf Basis einer entsprechenden Klasse einzulesen. Oder Sie können damit auch die Zeilen durchlaufen und die Inhalte auf Basis des Indexes oder der Spaltenüberschrift einlesen und weiterverarbeiten.

Weiterlesen