Hallo Community,
ich bin seit längerer Zeit beim Testen, ob ich von Excel zu LibreOffice – ganz konkret zu Calc – umsteigen könnte, was ich sehr gerne möchte.
Mein spezielles Problem sieht wie folgt aus:
Ich erstelle seit zig Jahren mit Delphi wissenschaftlich-technische Berechnungen, die ich bisher über DLL’s via VBA-Schnittstelle (*.xlam Excel-AddIns) in Excel als Erweiterung eingebunden habe. Hunderte dieser Berechnungsroutinen arbeiten in tausenden von Excel-Tabellen. Die DLL’s enthalten ausschließlich Berechnungsroutinen, die direkt in die Zellen der Tabellenblätter schreiben: Es sind also immer als Function mit einem aber auch oft mit mehreren Rückgabewerten (ein- und mehrdimensionale Arrays) deklariert. Ich verwende überhaupt keine Sub’s, NUR Function’s!
Bei meinen allerersten Gehversuchen mit LibreOffice (aktuelle Version 7) bin ich auf – für mich – unüberwindliche Hindernisse gestoßen.
Leider helfen mir dabei selbst die 4 neuesten Bücher von Großmeister Thomas Krumbein ( @Toxitom ) nicht weiter, weil er fast immer SUB’s verwendet und keine Funktionen, die in die Zellen schreiben.
Hier ist z.B. ein einfaches Beispiel:
Declare Function Reynolds Lib “SuchPfad\ChemWingsFlow.dll”_
(ByVal w#, ByVal d#, ByVal Ny#) As Double
Und die Benutzung der Routine in der Calc-Tabelle sieht wie folgt aus:
= REYNOLDS(E6;E7;E8)
Es kommt stets zur Fehlermeldung: „BASIC-Laufzeitfehler: Fehler beim Laden einer DLL-Datei.“
- Was mache ich falsch?
- Geht es überhaupt, daß meine Routinen aus der DLL direkt in die Zelle(n) der Calc-Tabelle schreiben?
- Kann man mit Calc sogenannte „Matrix-Funktion“ (= ein- und mehrdimensionale Arrays) als Rückgabewert einer Funktion direkt in die Tabellenzellen schreiben?
Diese Fragen sind das KO-Kriterium für meinen Umstieg. Ich probiere schon seit etlichen Wochen, leider ohne Erfolg.
Vielen Dank für Eure Hilfe im Voraus!
Viele Grüße
Andreas