Parameterübergabe in Makros

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

Moderator: Moderatoren

Werner Holtfreter
Beiträge: 4
Registriert: Mi, 09.10.2013 22:59

Parameterübergabe in Makros

Beitrag von Werner Holtfreter »

Hallo,

ich möchte in einem Makro für LO3.6.2.2 Linux, mit dem eine Funktion definiert wird, der Calc-internen Funktion "IRR" ein Array übergeben. Das funktioniert, wenn man das Array in einer Hilfstabelle übergibt. "oBereich" ist z.B. "A1:A7"

Code: Alles auswählen

oFunktion = GetProcessServiceManager().createInstance("com.sun.star.sheet.FunctionAccess")

IRRX = oFunktion.callFunction("IRR", Array(oBereich))
Die Hilfstabelle würde ich gern einsparen und das Array "wert" direkt übergeben, wie hier erfolgreich mit SUM getestet:

Code: Alles auswählen

IRRX = oFunktion.callFunction("SUM", wert)
Ersetzt man SUM durch IRR, führt das zum Laufzeitfehler. Wie macht man es besser?

(Ein gleichlautendes Posting in de.comp.office-pakete.staroffice.misc blieb bisher ohne Antwort.)
Viele Grüße
Werner
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Parameterübergabe in Makros

Beitrag von balu »

Hallo Werner,

das 'englische' IRR ist gleich das 'deutsche' IKV. Auch wenn der zweite Parameter optional ist, so muss er mit angegeben werden. Mit anderen Worten; So wie Du denkst funktioniert der Aufruf nicht, er muss noch erweitert werden.

Der Code müsste dann ungefähr so aussehen

Code: Alles auswählen

Sub Func
oFunctionAccess = createUnoService("com.sun.star.sheet.FunctionAccess")
Dim args( 1 ) As Variant
   args(0) = oBereich

   args(1) = '?? Hier muss der Optionale Parameter eingetragen werden. Vielleicht reicht ja einfach eine Null 0.

result = oFunctionAccess.callFunction( "IRR", args() )

msgbox result

end sub
Versuchs mal. Ich habs jetzt nicht getestet.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Werner Holtfreter
Beiträge: 4
Registriert: Mi, 09.10.2013 22:59

Re: Parameterübergabe in Makros

Beitrag von Werner Holtfreter »

Hallo balu,

danke für deinen Vorschlag. Leider benutzt du "oBereich", der auf auf die Hilfstabelle verweist, die ich ja einsparen will. Ich habe deshalb folgende Abwandlung probiert, aber in der Zeile mit "result" tritt wieder der Fehler auf:

Code: Alles auswählen

oFunktion = createUnoService("com.sun.star.sheet.FunctionAccess")
args(0) = wert()
args(1) = 0
result = oFunktion.callFunction("IRR", args() )
Viele Grüße
Werner
Antworten