myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Office-Technologien » C# .dll Events in Excel-VBA verwenden nicht möglich
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

C# .dll Events in Excel-VBA verwenden nicht möglich

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Rabi Rabi ist männlich
myCSharp.de-Mitglied

Dabei seit: 29.04.2020
Beiträge: 1
Entwicklungsumgebung: Visual Studio
Herkunft: Österreich


Rabi ist offline

C# .dll Events in Excel-VBA verwenden nicht möglich

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

ich versuche mich bereits seit mehreren Tagen daran das unten beschriebene Problem zu lösen.
Leider habe ich trotz sehr vieler Links in diesem Forum als auch bei StackOverflow das Problem nicht beheben können - eventuell könnt ihr mir dabei helfen.

Ich habe in C# eine Bibliothek erstellt - diese habe ich auf meinem Rechner registriert und auch sofort in Excel einbinden können - die Methoden usw. funktionieren einwandfrei - also denke ich habe ich von den Konfigurationen her nichts großartiges falsch gemacht.

Jedoch scheitere ich einfach daran dass ich die Events aus meiner C# Bibliothek in VBA abrufen kann. Im Object-Browser kann ich die Events finden (bereits mit dem "Blitz" Symbol). Jedoch schaffe ich es einfach nicht ein Objekt mit "WithEvents" zu erstellen.


Ich habe mich hauptsächlich an folgenden Topic auf StackOverflow orientiert:
 https://stackoverflow.com/questions/3951...t-events-to-com


Ich habe folgende Methoden in einer Klasse als auch in einer Form versucht anzuwenden:

Das Problem besteht anscheinend darin dass ich irgendetwas vergessen habe oder einfach falsch verstehe.

Wenn ich mein Objekt in VBA normal initialisiere mit:

Code:
1:
Private Testen As New TestKlasse.Connector

Kann ich ohne Probleme auf alle Methoden und Properties zugreifen.


Möchte ich jedoch ohne ein New-Schlüsselwort und dafür mit WithEvents das ganze erstellen (wie im StackOverflow-Post zu sehen).

Code:
1:
Private WithEvents Testen As TestKlasse.Connector

Bekomme ich sofort eine Fehlermeldung.


Ebenfalls meine dritte Variante funktioniert nicht:

Code:
1:
Private WithEvents Testen As New TestKlasse.Connector

Hier wären noch die Interfaces mit der zugehörigen Klasse (den Inhalt habe ich nur für das Forum entfernt):

C#-Code:
    [Guid("5F28EB7F-6DDC-4CB8-B268-0E73F3950C5F")]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
    [ComVisible(true)]
    public interface I_RAB_COM_Interface
    {

    }

    [Guid("2DB1AD6D-7E6B-4411-AC34-BA87EEA1EC34")]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
    [ComVisible(true)]
    public interface I_RAB_COM_Events
    {
        void OnConnectionEstablished(object sender, EventArgs e);
    }

    [Guid("5FC5CFBA-F52C-4F56-A8BC-3669750BF046")]
    [ClassInterface(ClassInterfaceType.None)]
    [ComSourceInterfaces(typeof(I_RAB_COM_Events))]
    [ComVisible(true)]
    public class Connector : I_RAB_COM_Interface, I_RAB_COM_Events
    {

    }

Ich bin für jede Hilfestellung dankbar.


Dateianhang:
unknown Rabi_Error_COM_IF.zip (28,39 KB, 0 mal heruntergeladen)
11.06.2020 13:33 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.938
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Sei Dir bewusst, dass VSTO Addins seit vielen Jahren abgekündigt sind und die Zukunft von Erweiterungen für die gesamte Office Suite JavaScript ist.
Siehe auch  Text in Word Dokuemnt einfügen - welche Vorgehensweise?
11.06.2020 13:35 Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.398
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Rabi:
Das Problem besteht anscheinend darin dass ich irgendetwas vergessen habe oder einfach falsch verstehe.

Weder erstellst du das Objekt so, wie es im verlinkten Artikel erklärt ist, noch definierst du ein Event. Entweder solltest du den Artikel nochmal genauer lesen, oder eine alternative Herangehensweise suchen (siehe Abts Antwort).
11.06.2020 17:30 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 02.07.2020 20:38