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

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

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.

Voraussetzung: Visual Studio .NET

Die einzige Voraussetzung, die wir neben der zu erweiternden Office-Anwendung brauchen, ist eine Version von Visual Studio .NET. Microsoft bietet eine für viele Fälle kostenlos nutzbare Version an, die Du beispielsweise hier findest:

https://visualstudio.microsoft.com/de/vs/community/

Visual Studio als Administrator öffnen

Wenn wir die geplante DLL erstellen und testen wollen, benötigen wir in der Regel Administrator-Rechte. Dazu öffnen wir Visual Studio direkt als Administrator. Dazu klicken wir mit der rechten Maustaste auf das Visual Studio-Icon und wählen dort den Eintrag Als Administrator ausführen aus. Die anschließende Meldung bestätigen wir.

DLL-Projekt erstellen

Anschließend erstellen wir ein DLL-Projekt. Aus dem Startbildschirm von Visual Studio wählen wir dazu den Eintrag Neues Projekt erstellen aus. Im Dialog Neues Projekt erstellen finden wir einige Auswahlfelder, mit denen wir die Auswahl aus Bild 1 treffen (Visual Basic, Windows, Bibliothek) und dann den Eintrag Klassenbibliothek (.NET Framework) selektieren.

Auswahl des Typs für das neue Projekt

Bild 1: Auswahl des Typs für das neue Projekt

Im nächsten Dialog namens Neues Projekt konfigurieren geben wir einen Projektnamen ein, in diesem Fall COMDLLBeispiel.

Außerdem wählen wir den Speicherort für das Projekt aus und legen als Framework den Eintrag .NET Framework 4.7.2 fest (siehe Bild 2).

Eingabe von Projektname und Speicherort

Bild 2: Eingabe von Projektname und Speicherort

Visual Studio nimmt sich nun einige Augenblicke Zeit, um das Projekt anzulegen und dieses anzuzeigen. Das Ergebnis sehen wir in Bild 3. Wir finden im Projektmappen-Explorer eine neue Projektmappe mit einer Klasse namens Class1.vb vor. Diese wollen wir als Erstes umbenennen.

Das neue Projekt in Visual Studio

Bild 3: Das neue Projekt in Visual Studio

Umbenennen der Klasse

Das ist an sich kein Hexenwerk, wir wollen nur kurz klären, wo wir den Namen dieser Klasse sehen werden. Wenn wir die COM-DLL später im VBA-Editor einer Office-Anwendung deklarieren und referenzieren, geschieht das in der folgenden Form:

Dim obj As [Assemblyname].[Klassenname]

Neben dem Assemblynamen sollten wir also auch den Klassennamen so auswählen, dass wir nachher auch erkennen, was diese Klasse für Funktionen liefert.

In unserem Beispiel spielt das allerdings keine große Rolle und wir verwenden einfach Beispielklasse. Diesen Wert tragen wir im Projektmappen-Explorer Beispielklasse.vb statt Class1.vb ein.

Visual Studio fragt nach, ob wir auch die Verweise auf diese Elemente umbenennen möchten, was wir mit Ja beantworten (siehe Bild 4). Dadurch wird auch direkt der Klassenname im Code geändert:

Umbenennen von Datei und Klasse

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar