ich bin jetzt seit mehreren Tagen am Verzweifeln- vielleicht
kann mir jemand helfen:
Um meinen Code zu schützen und bessere Performance zu
erreichen möchte ich ein paar kleine Funktionen, in einer DLL
erstellen, diese in Excel VBA einbinden und dort benutzen.
Dazu habe ich zuerst FreeBasic ausprobiert, was ganz gut ging:
in Freebasic:
type tarr
values(1 to 10, 1 to 4) as double
end type
declare
Function fTest lib "fTest" alias "fTest" (byref arr as tArr) as long
Function fTest (byref Arr As tarr) as long export
ftest=arr.values(2,3)
End Function
in VBA:
Type tArr
values(1 To 10, 1 To 4) As Double
End Type
Public mArr As tArr
Declare
Function fTest Lib "c:\freebasic\alex\fTest.dll" Alias "fTest@4" (ByRef Arr As tArr) As Long
nur leider gab es dabei ein paar Probleme
- Die Variable arr darf höchstens 64KB groß sein
- FreeBasic sortiert mehrdimensionale Arrays im Speicher andersherum als VBA
Somit war dieser Ansatz gescheitert. Also lud ich die freie Visual Basic 2005
Express Edition von Microsoft herunter und probierte damit herum.
Klassenbibliothek erstellen, die Funktionen in Klassen verpacken- aber hier
funktionierte einfach gar nix- selbst nach stundenlangen Recherchen im Netzt
habe ich nicht herausbekommen, wie ich die dll in Excel als Verweis einbinden
kann. Excel meldet immer das gleiche: Verweis auf die angegebene Datei kann
nicht erstellt werden Jeglicher versuch, die dll zu registrieren schlägt auch
fehl: Classlibrary1.dll was loaded, but the DllRegisterServer entry Point was
not found. usw.
Hat jemand eine Anleitung, ein Tutorial, Beispiel- oder ein paar Tipps, wie
man eine einfache Function in eine Dll schreibt, Ihr dynamische Array als
ByRef Parameter übergibt und dass dann in Excel benutzen kann?
Ich wäre wirklich dankbar