eigene Funktion in Calc integrieren - was läuft da schief?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

heinz_ketchup
****
Beiträge: 111
Registriert: So, 07.10.2007 16:05
Wohnort: München

eigene Funktion in Calc integrieren - was läuft da schief?

Beitrag von heinz_ketchup »

Hallo,

als Anfänger sollte man sich zuerst kleinen Herausforderungen stellen. Also fange ich zum Testen ganz klein an.
Ich möchte in der Funktionenliste in Calc eine Funktion einfügen MyFunction(). Diese Funktion soll a + b addieren. Das kann nicht wirklich so schwer sein (dachte ich zumindest).

Trotzdem bekomme ich bei der Ausführung des Makros in einem Tabellenblatt immer folgende Fehlermeldung:

Ein Scripting Framework Fehler trat währden der Ausführung von Basic script Standard.MyFunction.MyFunction auf. Meldung: wrong numbers of parameters!

Hier mein Code:

Code: Alles auswählen


REM  *****  BASIC  *****

Function MyFunction(a as Integer, b as Integer) as Double

Dim a as Integer
Dim b as Integer
Dim MyFunction as Double

MyFunction = a + b

End Function

Bin ich wirklich zu blöd oder habe ich was Fundamentales übersehen?

Vielen Dank für eure Hilfe!

Gruß Werner
------------------------------------------------------------
LibreOffice 3.5.4.2 auf Mac OS X 10.10.1 und MySQL 5.5
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: eigene Funktion in Calc integrieren - was läuft da schief?

Beitrag von Toxitom »

Hallo hienz,

also, ich habe deinen Beitrag erst mal hierher verschoben - gehört ins Basic-Forum.

Im Grunde ist deine Funktion einfach - und fast korrekt:
die Variablen a und b werden schon im Funktionsaufruf (erste Zeile ) definiert - die darst du nicht noch einmal erzeugen!
Das gleiche gilt natürlich für "MyFunction" genauso.
Also:

Code: Alles auswählen

Function MyFunction(a as Integer, b as Integer) as Double

MyFunction = a + b

End Function

reicht. Diese Funktion in der Standardbibliothek unter "Meine Makros" abgespeichert - dann in eine Zelle geschrieben:

Code: Alles auswählen

MYFUNCTION( 2 ; 3)
ergibt den Wert 5.

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
heinz_ketchup
****
Beiträge: 111
Registriert: So, 07.10.2007 16:05
Wohnort: München

Re: eigene Funktion in Calc integrieren - was läuft da schief?

Beitrag von heinz_ketchup »

Hi Thomas,

danke, jetzt habe ich's kapiert. Nun aber ein neues Problem.
Wenn ich MyFunction() in eine Calc-Zelle explizit eintrage, dann funktioniert die Berechnung auch. Möchte ich die Funktion aber aus der Funktionenliste aufrufen, dann wird die dort nicht angezeigt.

Brauche ich dazu einen extra Befehl?

fragt Werner

Viele Grüße!
------------------------------------------------------------
LibreOffice 3.5.4.2 auf Mac OS X 10.10.1 und MySQL 5.5
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: eigene Funktion in Calc integrieren - was läuft da schief?

Beitrag von Toxitom »

Hey Werner,

nein. Das geht nicht (oder besser - nicht so einfach. Wahrscheinlich geht alles;-) ). Selbstdefinierte Funktionen können nicht im Funktionsassistenten auftauchen - so wie sie ja auch nicht in der OOo Hilfe zu finden sind....

Wenn du etwas "großes" brauchst, so könntest du eine Extension programmieren - dann hättest du zumindest auch bei der Verteilung eine eigene Symbolleiste, einen Menü-Eintrag und du könntest Hilfeseiten hinzufügen.
Ansonssten schreibe einfach eine eigene Dokumentation (wie die Funktion arbeitet) und gib sie den Benutzern mit :-)

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
heinz_ketchup
****
Beiträge: 111
Registriert: So, 07.10.2007 16:05
Wohnort: München

Re: eigene Funktion in Calc integrieren - was läuft da schief?

Beitrag von heinz_ketchup »

Hi Thomas,

vielen Dank für Deine Hilfe!!! :D
Jetzt bin ich schon einen ganzen Schritt weiter.

Bis bald und viele Grüße!

Werner
------------------------------------------------------------
LibreOffice 3.5.4.2 auf Mac OS X 10.10.1 und MySQL 5.5
Antworten