Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
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 zu 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.
Projekt für die COM-DLL erstellen
Wenn wir eine COM-DLL erstellen wollen, auf die wir von Office-Anwendungen aus per VBA zugreifen können, wählen wir beim Erstellen eines neuen Projekts in Visual Studio den Typ Klassenbibliothek (.NET Framework) – Ein Projekt zum Erstellen einer Klassenbibliothek (.dll) und nicht Klassenbibliothek – Ein Projekt zum Erstellen einer Klassenbibliothek für .NET Standard oder .NET Core aus (siehe Bild 1). Mit letzterer können wir aktuell keine COM-DLLs erstellen.
Bild 1: Erstellen eines neuen Projekts
Im nächsten Schritt wählen wir den Speicherort aus und geben als Projektnamen YouTubeAPIV3 an. Als Zielframework wählen wir .NET Core 3.1 aus. Das neue Projekt erwartet uns dann in Visual Studio mit einer leeren Klasse namens Class1.vb.
NuGet-Pakete hinzufügen
Für den Zugriff auf die YouTube-API v3 benötigen wir zwei NuGet-Pakete. Um diese hinzuzufügen, öffnen wir mit Projekt|NuGet-Pakete verwalten… den NuGet-Bereich. Im Bereich Durchsuchen suchen wir nach den beiden Paketen Google.Apis.YouTube.v3 und Google.Apis.Oauth2.v2 und installieren diese.
Vorbereitungen für die COM-DLL
Damit die Klasse später als COM-DLL verwendet werden kann, nehmen wir nun einige Einstellungen in den Projekteigenschaften vor. Dazu öffnen wir die Projekteigenschaften mit einem Rechtsklick auf das Projekt im Projektmappen-Explorer und anschließender Auswahl des Eintrags Eigenschaften aus dem nun erscheinenden Kontextmenü.
Die erste Einstellung finden wir, wenn wir im Bereich Anwendung auf die Schaltfläche Assemblyinformationen… klicken. Das öffnet den Dialog Assemblyinformationen, wo wir prüfen, ob die Option Assembly COM-sichtbar machen aktiviert ist und holen dies gegebenenfalls nach (siehe Bild 2).
Bild 2: Aktivieren von Assembly COM-sichtbar machen
Danach klicken wir links auf Kompilieren, um den entsprechenden Bereich einzublenden. Hier finden wir unten die Eigenschaft Für COM-Interop registrieren, die wir aktivieren (siehe Bild 3).
Bild 3: Aktivieren von Für COM-Interop registrieren
Klasse mit der Funktion zur Authentifizierung
Für den Zugriff auf die YouTube API v3 benötigen wir eine Authentifizierung, die wir mit der im Artikel YouTube-Kanal mit VB.NET verwalten, Teil 2 (www.vbentwickler.de/316) vorgestellten Klasse realisieren. Dazu fügen wir die dort beschriebene Klasse Authentication.vb in unser neues Projekt ein. Damit wir diese von einem VBA-Projekt aus nutzen können, sind jedoch einige Anpassungen nötig. Die erste ist eine tatsächliche Funktionserweiterung. Wir möchten das dabei gewonnene Token für den Zugriff auf die YouTube-API nämlich auch separat abrufen können, um gegebenenfalls einmal von einem VBA-Projekt aus direkt auf die YouTube-API zugreifen zu können.
Für den Betrieb als COM-DLL sind überdies noch weitere Änderungen nötig. Als Erstes benötigen wir einen Verweis auf den folgenden Namespace in jeder Klasse, die wir von VBA aus initialisieren und nutzen wollen:
Imports System.Runtime.InteropServices
Dies ermöglicht es uns, die zu veröffentlichenden Klassen so auszuzeichnen, dass wir von außen auf diese zugreifen können.