#

 

 

Dieser Beitrag zeigt, wie man ein eigenes COM Control für MS Office Anwendungen erstellen kann, welches die komplette Funktionalität von Windows 10 .Net Framework 4.7 aufweist.

 

Für Access, Excel, Word, Outlook, Powerpoint Visual Studio 2017.

 

 

Unter Office Anwendungen werden COM Controls meistens in der Visual Basic Entwicklungsumgebung als Referenz eingebunden.

In Menü->Extras->Verweise

 

Wenn man hier einen Verweis auf ein externes Control (.tlb, .dll, .ocx) gesetzt hat, dann kann man das COM Control zur Laufzeit programmieren

 

 

Als Video Tutorial

 

 

Erstellen in Visual Studio 2017

In Visual Studio erstellt man zunächst ein neues Projekt

Man verwendet das Class Library (.NET Framework) Projekt am Besten unter der Sprache Visual Basic .Net

 

 

Einstellungen des Projekts

 

Im Class Library Project öffnet man die Einstellungen des Projekts und stellt das Projekt als COM Ein

 

In Application->Assembly Information->Make assembly COM Visible

 

Signing

Unter  Signing erstellt man im DropDown Feld des Choose as strong name key File

< New.. >

 

Und gibt dann im Dialog: Create Strong Name Key ein unter:

Key file name: einen freien Eintrag wie axDLL07_key

In Passwort ein Wort mit mindestes 8 Zeichen aus Buchstaben und Zahlen

 

 

Compile

Unter den Eigenschaften von Kompilieren sollte man die Option aktivieren:  Register for COM Interop

 

Zum Kompilieren muss man das Projekt erneut als Visual Studio als Administrator öffnen

 

Code Snippet einbinden

Am Besten fügt man dann als rumpf das folgende Code Snippet ein.

 

 

Code-Snippet Visual Basic Code für das COM Control

In Visual Studio 2017, Net Framework 4.7

 

<ComClass(clsTest.ClassId, clsTest.InterfaceId, clsTest.EventsId)>

Public Class clsTest

 

    Public Const ClassId As String = ""

    Public Const InterfaceId As String = ""

    Public Const EventsId As String = ""

 

    Public Sub New()

        MyBase.New()

    End Sub

 

    Public Function zeige_Message(ByVal Message_Text As String) As Boolean

        MsgBox(Message_Text, MsgBoxStyle.Information, "mein Test Dialog")

        Return True

 

    End Function

End Class

 

 

Den ID Feldern neue eindeutige GUID Nummern zuweisen

 

Nun muss man für jede der 3 ID Nummern jeweils eine neue eindeutige GUID Nummer erstellen zu zuweisen

Man findet die GUID Nummern unter Menü->Tools->Create GUID

Dann erstellt wählt man die Option Registry Format (..) aus

Dann erstellt man jeweils eine new GUID, kopiert diese und fügt diese in die leeren String-Stellen ein

 

Die geschweiften Klammern am Anfang und Ende der GUID muss man entfernen

 

Build Project Build Solution

Mit dem Kompilieren des Projekts wird die DLL als Ausgabe gebildet und zusätzlich eine Type Library Datei

 

.tlb Datei

In der Ausgabe des Bin Verzeichnisses findet man die .tlb Datei, welche man in der MS Office Anwendung als Referenz einbinden muss

 

 

Wechsel zu Administrator

Projekt mit der Option COM Interop können nur als Administrator kompiliert werden.

Ansonsten kommt die Meldung:

Cannot register assembly ..dll access denied. Please make sure youre running the application as administrator

 

Deshalb Visual Studio schliessen und anschliessen im Windows 10 Start Menü das Visual Studio im Context Menü als Run as administrator starten

 

Sobald man das Projekt und die  Solution kompiliert hat, findet man eine Datei mit der Endung .tlb in bin Ausgabe-Verzeichnis.

Wenn man diese Type Library .tlb in dem Office Anwendung in der vba Code Entwicklungsumgebung mit Menü->Extras->Verweise anbindet, dann kann man das externe NET Control mit Intellisense programmieren.

 

 

Das COM Control wird mit der as New COM_Control.Classname in die Office Anwendung übernommen.

Danach sind  alle public Funktion aus dem .Net Projekt als vba-Methoden zur Verfügung

 

 

Vba Code in MS Access as Beispiel

Option Compare Database

Option Explicit

 

 

Private Sub btnTest_Click()

       

       Dim myControl As New axDLL07.clsTest

       myControl.show_Message "Hello now it is 9:18"

      

End Sub

 

 

Beispiele:

Email Client

OCR Code, Bar Code Controls für Office

Jpg Mp4 Image Handler um Fotos anzupassen

 

 

Stichworte: COM Dll Control, ActiveX ocx, Type Library .tlb, COM Interop Interoperability COM Register RegAsm, Register COM, UserControls Microsoft Office Components, Referenz Verweise in vba

Mobile

.

123movies