Seite 1 von 1
BASIC-Funktion definieren und benutzen - wie?
Verfasst: Fr 6. Jun 2025, 10:14
von Freischreiber
Hallo,
ich scheitere schon an dem Minimalbeispiel unter
https://help.libreoffice.org/latest/de/ ... ction.html
Die Funktion
habe ich angelegt, wo auch die Makros gespeichert sind, und sie wird auch im Modul erkannt.
Aber wenn ich in Calc die Funktion aufrufe, z. B. mit dem Zellinhalt "=VOL(1;2;3), dann erhalte ich nicht "6", sondern "'#WERT!".
Warum??
Gruß
Freischreiber
Edit: Wenn ich die Funktion nicht unter "Meine Makros", sondern in der geöffneten Calc-Datei direkt anlege, dann wird der Wert 6 geliefert! Wie kann das sein? Warum ist die Funktion, wenn sie unter "Meine Makros" steht, für das Calc-Dokument nicht auffindbar? Mit Writer- oder Base-Makros klappt es doch auch!
Re: BASIC-Funktion definieren und benutzen - wie?
Verfasst: Fr 6. Jun 2025, 10:40
von karolus
Hallo
Funktionen die als UDF (UserDefinedFunction) aus Calc aufgerufen werden sollen, MÜSSEN in einem Modul unterhalb »»⇒ Meine Makros ⇒ Standard«« gespeichert werden.
Re: BASIC-Funktion definieren und benutzen - wie?
Verfasst: Fr 6. Jun 2025, 10:49
von Freischreiber
karolus hat geschrieben: ↑Fr 6. Jun 2025, 10:40
Hallo
Funktionen die als UDF (UserDefinedFunction)
aus Calc aufgerufen werden sollen, MÜSSEN in einem Modul unterhalb »»⇒ Meine Makros ⇒
Standard«« gespeichert werden.
Arrgh!!! Warum? Warum???
Gibt es bei Libreoffice einen Programmierer für Sonderlocken, und der hatte zuviel Zeit?
@karolus, vielen Dank! Aber woher weißt du sowas?
Freundliche Grüße
Freischreiber
Re: BASIC-Funktion definieren und benutzen - wie?
Verfasst: Fr 6. Jun 2025, 10:51
von Freischreiber
Jetzt habe ich noch eine Zusatzfrage:
bei der Fehlersuche bin ich auf die Parameter "ByRef" und "ByVal" gestoßen und dache, mein Fehler kommt davon, daß ich direkt Werte übergeben habe und nicht Zellbezüge. Aber das scheint der Formel gar nichts zu machen. Beides geht. Wozu gibt es dann die Unterscheidung?
Re: BASIC-Funktion definieren und benutzen - wie?
Verfasst: Fr 6. Jun 2025, 15:37
von karolus
Hallo
…Aber woher weißt du sowas?
Ich hatte es mir mal aufgeschrieben, leider habe ich vergessen wo der Zettel liegt
Arrgh!!! Warum? Warum???
Gibt es bei Libreoffice einen Programmierer für Sonderlocken, und der hatte zuviel Zeit?
Weil es mglw. eine gute Idee ist den »
Suchraum« für Funktionsnamen, die zunächst nicht zu den »eingebauten« Funktionen gehören, auf eine sinnvolle Weise zu limitieren … vielleicht fällt dir an der Stelle eine Analogie zu einem eher ironischen Satz in diesem Beitrag auf!
…Parameter "ByRef" und "ByVal" gestoßen…
Den Unterschied habe ich auch nie wirklich begriffen, dürfte hier aber komplett egal sein, weil die Formel sowieso schon in
Calc »geparst« wird, auf der Basic-seite kommen da eh nur die Argumente so rein wie Calc das will.
Re: BASIC-Funktion definieren und benutzen - wie?
Verfasst: Fr 6. Jun 2025, 15:51
von Freischreiber
Weil es mglw. eine gute Idee ist den »Suchraum« für Funktionsnamen, die zunächst nicht zu den »eingebauten« Funktionen gehören, auf eine sinnvolle Weise zu limitieren … vielleicht fällt dir an der Stelle eine Analogie zu einem eher ironischen Satz in diesem Beitrag auf!
Weil man sonst leider vergessen könnte, wo der Funktionsname definiert wird? Ok, aber dann sollte man sinnvollerweise diese Einschränkung irgendwo dokumentieren. Sonst suchen sich ordentliche User, die brav für Writer- und Base- und Calc-Makros eigene Bibliotheken anlegen, einen Wolf.
Achso: das gilt nur für Funktionen, nicht für Makros?
Schon wieder vielen Dank!
Gruß
Freischreiber
Re: BASIC-Funktion definieren und benutzen - wie?
Verfasst: Fr 6. Jun 2025, 17:47
von karolus
Hallo
Achso: das gilt nur für Funktionen, nicht für Makros?
nur für Funktionen die
auch als UDF aus Calc benutzt werden sollen