VBA-Code in VB6/Active-X DLL verwenden
01.04.2017 16:46:41
Jens
Ich habe ein recht umfassendes Projekt entworfen und würde gerne den Code einigermassen schützen. Nach etwas Recherche kam ich dann auf die Lösung, über VB6 eine Active-X DLL zu erstellen und dann aus Excel die Funktionen aus der erstellten DLL aufzurufen.
Soweit hat auch alles geklappt (DLL speichern, registrieren und die DLL wieder aufrufen).
Ich habe nur etwas Schwierigkeiten mit der Referenzierung in VB6.
z.B.:
Worksheets("Abschluss").Cells(ausgabeyzaehler, i).Interior.ColorIndex = 37
oder
ActiveSheet.Range("A33").Select
So etwas findet der VB6-Compiler dann nicht. Wie muss ich das richtig deklarieren bzw. übersetzen damit das läuft ?
Im Netz bin ich auf folgende Lösung gestossen:
In a procedure of the project that will be exposed as a method in the DLL, add the following code:
Dim E As Excel.Application
Set E = GetObject(, "Excel.Application")
'or if Excel is not running use CreateObject("Excel.Application")
'You can use error handling to figure out which one you need.
Funktiert aber leider nicht wenn dich die beiden Befehle einfach bei VB6 einbaue und dann eben schreibe
E.Worksheets("Abschluss").Cells(ausgabeyzaehler, i).Interior.ColorIndex = 37
Kennst sich da jemand ovn Euch aus ?
Viele Grüsse & vielen Dank
Jens