Externe DLL unter VBA(Excel) einbinden

PS: Kenne mich mit .NET nicht aus aber kanns sein das diese DLL dann nur mit .NET funktioniert?

Das weiß ich auch nicht. Mir ist nur bekannt, dass es keine AvtiveX-DLL ist.
Möchte sie dennoch gerne in VBA einbinden. Kann es sein, dass VB.net eine DLL in ein Format erstellt, die VBA nicht entschlüsseln kann?
Gibt es vielleicht noch eine andere Möglichkeit externe Prozeduren einer Klasse, in einer Datei abzuspeichern und mittels VBA auszuführen?

Bekomm immer die Fehlermeldung:
Run-time error '453!:
Can't find DLL entry point abc in C:\..........dll

Quasi findet er die Datei, kann nur nicht auf die Prozedur "abc", in der Klasse "Class1" zugreiffen.


Wenn ich den Pfad FALSCH eingebe, kommt:
File not found: C:\........dll
 
Bin im mom auch grad mit dlls am rumbasteln. Diese Fehlermeldung mit Einistiegspoint nicht gefunden, kommte, wenn der Function-Name falsch ist.
Nach
Code:
...Function
kannst ein selbst gewählter Name hinschreiben, nach
Code:
...Alias
kommt der Function-Name.

Der Aufruf funktioniert dann so:
Code:
MessageTest(Me.hWnd)
Auf mein bsp. bezogn
 
Hab ich probiert. Kommt aber auch noch der selbe Fehler mit Einsprungsmarke nicht gefunden.

Hab mal meine DLL ausgelesen:

Code:
Public Class Class1
    Public Function abc()
        MsgBox("abc")

    End Function
End Class

mehr steht in der DLL nicht drin.


darum versuch ich schon verzweifelnd auf die Function "abc" aufzurufen.
 
Genau da liegt vielleicht das Problem. Hab Sie mit VB.net erstellt.
Leider war es mir nicht möglich, daraus eine ActiveX-DLL zu erstellen.
Hab aber keine andere Möglichkeit oder kann man mit VBA ähnliche Dateien erstellen, wo man die Prozedur extern während der Laufzeit öffnen kann?

Damit ich nicht jedesmal das gleiche Modul schreiben muss, bzw bei Änderungen jedes Modul einzeln verändern muss, brauch ich eine externe Datei mit den ich die Functionen einmalig verwalten kann.
 
Versuchs mal mit
Code:
set myDLL = CreateObject("Class1")
myDll.abc
Evtl. noch unter Projekte (in Excel unter Extras) => Referenzen die DLL ins Projekt einbinden. Die DLL muss dazu evtl. auch im System registriert sein.
 
Kann die DLL-Datei nicht zu den Referenzen hinzufügen. Ist keine ActiveX-DLL.

Die Function createObjekt kann ich nicht ausführen. Mir fehlt die Libary, weißt du zufällig welche das ist?
 
Hast du es richtig geschrieben? Es heißt CreateObject()
Das ist eine eingebaute Funktion von VB(A).

Beispiele:
Code:
set Word = CreateObject("Word.Application")
set FSO = CreateObject("Scripting.FileSystemObject")

Evtl. musst du bei dir noch den Projektnamen der DLL davor hängen:
Code:
set myDLL = CreateObject("DLLProjektName.Class1")
myDll.abc
 

Neue Beiträge

Zurück