Net Framework, Office 365, C#, WPF, ASP.Net, Visual Studio, Programmiersprachen PC, C# Programmieren, vba, SQL Server, free source code snippets Antivirus free
#

Download:

Datei 1: Class1.cs
Datei 2: Excel_Test_Com.xlsm
Datei 3: Pdf_Text_Reader.dll
Datei 4: Pdf_Text_Reader.pdb
Datei 5: Pdf_Text_Reader.tlb
Datei 6: register.bat
Datei 7: unregister.bat

COM Control für Office erstellen

 

Diese Beschreibung zeigt, wie man ein COM Control erstellt und anschliessend in Microsoft Office verwendet.

Dabei wird das COM Control in C# in Visual Studio erstellt. Die Beschreibung enthält den Basis-Code in C# zum Erstellen eines COM Controls.

Das COM Control wird in diesem Beispiel nur als .dll Datei erstellt und kommt ohne sichtbares Bediener-Control aus.

 

 

 

Betrifft:

Erstellung in Android Studio C# oder vb.net als Application type: Class Library

Anwendung in: 

Microsoft Word, Excel, Access, Powerpoint

.Dll .tlb COM ActiveX

 

1) ein neues Project erstellen

In Visual Studio auf File->New->Project

 

 

Dann im Dialog: New Project auswählen :

Installed->Windows Desktop->Class Library (.NET Framework) in Visual C# oder Vb.net

Das Projekt heißt im Beispiel: Pdf_Text_Reader

 

Nach Erstellung der Class Library (.NET Framework)

 

Start Code C# unter Class1.cs

Von Visual Studio automatisch erstellt

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Pdf_Text_Reader

{

    public class Class1

    {

    }

}

 

 

 

Grundeinstellugn für COM-Projekte

Für COM Projekte muss man im Project->Properties einige COM-Optionen aktivieren:

Application

Dann auf Assembly Information->Make assembly COM-Visible

Build

Unter Project->Build:->Register for COM Interop aktivieren

 

Signing

Unter Project->Signing->Sign the assembly

Auf Chosse as strong name key file: <New..> auswählen

 

Dann einen neuen Schlüssel eingeben

Unter Key File name: einen neuen Namen frei definierbar eingeben

 

 

C#: COM Code

 

1) unter Using InteropServices

using System.Runtime.InteropServices;   

 

2) im Ersten Block definiert man die in Ms Office sichtbaren zugriffe wie COM.Functions(..) (Methoden in c#).

Dabei kopiert man einfach namentlich die internen Methoden aus der COM-Class

[InterfaceType(ComInterfaceType.InterfaceIsDual)]

[Guid("your-GUID-1")]

public interface _Visible_Methods

{

    //--------< _Visible_Methods >--------

    //*visible COM Methods of this Control under Office,Excel, Word

    //*simply repeat method from class

    string get_Hello();

 

    //--------</ _Visible_Methods >--------

}

 

Dann gibt man der COM Classe die Attribute ClassInterface, eine GUID und eine  ProgID

[ClassInterface(ClassInterfaceType.None)]

[Guid("your-GUID-2")]

 

[ProgId("Pdf_Text_Reader")]

public class pdf_Reader : _Visible_Methods

{

..

}

 

 

C# Code-Snippet

Für COM Control

C# Code-Vorlage für COM Control dll in Ms Office (Excel, Word, Powerpoint..)

using System;

using System.Runtime.InteropServices;

 

 

[InterfaceType(ComInterfaceType.InterfaceIsDual)]

[Guid("your-GUID1")]

public interface _Visible_Methods

{

    //--------< _Visible_Methods >--------

    //*visible COM Methods of this Control under Office,Excel, Word

    //*simply repeat method from class

    string get_Hello();

 

    //--------</ _Visible_Methods >--------

}

 

[ClassInterface(ClassInterfaceType.None)]

[Guid("your-GUID2")]

 

[ProgId("Pdf_Text_Reader")]

public class pdf_Reader : _Visible_Methods

{

    //----------------< class: pdf_Reader  >----------------

    //*internal method

    public string get_Hello()

    {

        //--------< get_Hello() >--------

 

        return "Hello, this Text is from the C# COM.dll. Code at under CodeDocu.com";

 

        //--------</ get_Hello() >--------

    }

 

    //----------------</ class: pdf_Reader  >----------------

}

 

 

Ausgabe-Dateien von Visual Studio

Runtime-Dateien

Man benötigt für das COM Control Objekt die Dateien im /bin/Debug oder /bin/Release verzeichnis.

Dabei wird die .tlb Datei erst beim zweiten Aufruf von Menü->Build ->Build Solution erzeugt.

Alle 3 Dateien (COM.dll,.pdb, .tlb) müssen in das Verteiler-Verzeichnis kopiert werden, welche man für Office letztendlich verwendet.

 

 

Zum Testen oder zur Weitergabe kann man die Dateien vom Projekt-Ordern ein Weitergabe-Verzeichnis kopieren.

 

 

Registrieren und Deinstallieren

Bevor man die COM dateien in Ms Office verwenden kann, muss man die COM_File.tlb Datei mit register.bat in Windows 7 und Windows 10 anmelden.

Man muss die register.bat als Administrator aufrufen.

 

In der Register.bat steht der Aufruf von regasm.exe "full_path_your_COM_project.dll" mit /tlb und /codebase als Parametern.

 

Register.bat Code

C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe "C:\_Daten\Desktop\VS_Projects\ActiveX\Pdf_Text_Reader\_Test\Pdf_Text_Reader.dll" /tlb /codebase

Pause

 

Unregister.bat

Man benötigt die Unregister.bat, wenn man das COM Control vom Windows Rechner entfernen will.

Hier ist darauf zu achten, dass regasm.exe mit /u ausgeführt wird und auf die xxx_your_com.dll Datei verweist.

Unregister.bat code

C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /u "C:\_Daten\Desktop\VS_Projects\ActiveX\Pdf_Text_Reader\_Test\Pdf_Text_Reader.dll"

pause

 

Anwendung in Excel

 

Unter Microsoft MS Excel bindet man diese COM Datei in der vba Codebehind Seite ein.

Man kommt zu der vba Seit mit Alt-F11.

 

Verweis erstellen:

Dann muss man unter Menü->Extras->Verweise  mit Durchsuchen… auf die .tlb Datei des Projektes gehen.

 

Vba-Code

Anschliessend kann man das COM Control wie folgt mit Intellisense einbinden.

 

Vba Code Beispiel

Option Explicit On

 

Public Sub Test()

    Dim pdf_Reader As New Pdf_Text_Reader.pdf_Reader

 

    Dim s As String

    s = pdf_Reader.get_Hello

 

    MsgBox s

End Sub

 

 

 

Ausführung in Excel

Dann die Ausführung unter Excel:

Der Dialog erscheint aus der Rückgabe -Strings der COM-Dll

 

 

COM und ActiveX

Dies Beschreibung ist für eine COM-Anwendung als .dll, welche unter Microsoft Office zum Aufrufen und ausführen von Windows Programmen dient.

Dabei ist diese COM ohne sichtbare User-Schnittstelle.

Der Aufbau eine ActiveX Usercontol Anwendung ist ziemlich ähnlich.

Mobile
»
C# COM Control für Office erstellen
»
ActiveX COM Control: Email Client für Office Anwendungen
»
Projektvorlage für ein ActiveX Control
»
Email Send Control für Office Anwendungen
»
COM: Run-time error 2147024894 80070002 automation error The system can not find the specified file
»
COM Fehler: DllRegisterServer-Einstiegspunkt Fehlermeldung beim Registrieren einer ActiveX COM DLL
»
Vorlage Code: Eigenes ActiveX Control erstellen in Visual Studio 2017 und Office 2016 365
»
Winform, WPF: Einen Mail Client als SendMail Client in Net erstellen
»
Office Studio: Erstellen von eigenen COM Controls für MS Office Anwendungen
»
Fehler: The assembly could not be converted to a type library. Type library exporter encountered an error while processing

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Raimund.Popp@Microsoft-Programmierer.de