Laden...
R
Rabi
myCSharp.de - Member
1
Themen
3
Beiträge
Letzte Aktivität
vor 4 Monaten
Dabei seit
29.04.2020
Beruf
Automatisierungstechniker
Herkunft
Österreich
Erstellt vor 4 Jahren

Hallo tommylik,

ich habe in einem anderen Forum schon angemerkt dass du kaum jemanden finden wirst der dir einfach einen Code umschreiben wird vorallem da ZenOn etwas spezifischer ist und hier wohl kaum jemand direkt damit gearbeitet hat (oder eher wenige).

Habe trotzdem mal eine Basisversion für dich hinterlassen und hoffe dass du damit arbeiten kannst:

https://www.sps-forum.de/hochsprachen-opc/102385-wie-vba-scripte-mit-der-s7-verbinden-3.html

Es handelt sich eben um ein AddIn für die Entwicklungsumgebung von ZenOn und eigenen Bibliotheken dahinter.

Erstellt vor 4 Jahren

Ich bin das ganze jetzt nur grob überflogen aber eventuell musst du diese DLL Datei noch in deinem System registrieren, dafür würde ich hier folgende Anleitung empfehlen:

http://www.geeksengine.com/article/register-dll.html

Erstellt vor 4 Jahren

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/39511528/exposing-net-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:

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).

Private WithEvents Testen As TestKlasse.Connector

Bekomme ich sofort eine Fehlermeldung.

Ebenfalls meine dritte Variante funktioniert nicht:

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):

    [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.