Calc-Funktionen in Macros verwenden

Zusätzlich zu den nativen BASIC-Funktionen können Sie Calc-Funktionen in Ihren Makros und Skripten aufrufen und Calc-Funktionen in Zellformeln setzen.

Aufrufen von internen Calc-Funktionen in Basic

Verwenden Sie die Funktion CreateUNOService, um auf den Dienst com.sun.star.sheet.FunctionAccess zuzugreifen.

Beispiel:

Das folgende Beispiel erstellt eine Funktion namens MyVlook, welche die Calc-Funktion SVERWEIS über ein als Argument übergebenes Datenarray aufruft und den von der Funktion gefundenen Wert zurückgibt.


    Function MyVlook(Lookup, DataArray As Object, Index As Integer, SortedRangeLookup as Byte)
        Dim oService As Object
        Set oService = createUnoService("com.sun.star.sheet.FunctionAccess")
        ' Verwenden Sie den Funktionsnamen immer auf Englisch
        MyVlook = oService.callFunction("VLOOKUP", Array(Lookup, DataArray, Index, SortedRangeLookup))
    End Function
  

Das folgende Makro zeigt ein Beispiel dafür, wie die Funktion MyVlook aufgerufen werden kann. Es erstellt zuerst eine 5-mal-2-Datenmatrix, ruft dann die Funktion MyVlook auf und zeigt den zurückgegebenen Wert mit MsgBox an.


    Sub CallingMyVlook()
        ' Erstellt ein 5 x 2 Array und füllt es mit Daten
        Dim myData(1 to 5, 1 to 2) as Variant
        myData(1, 1) = 1 : myData(1, 2) = "Stimme überhaupt nicht zu"
        myData(2, 1) = 3 : myData(2, 2) = "Stimme nicht zu"
        myData(3, 1) = 5 : myData(3, 2) = "unentschieden"
        myData(4, 1) = 7 : myData(4, 2) = "Stimme zu"
        myData(5, 1) = 9 : myData(5, 2) = "Stimme voll und ganz zu"
        ' Durchsucht das Datenarray nach
        Dim result as String
        result = MyVlook(4, myData, 2, 1)
        ' Zeigt die Meldung "Stimme nicht zu"
        MsgBox result
    End Sub
  

Festlegen von Zellformeln, die interne Berechnungsfunktionen enthalten

Verwenden Sie die Formeltextzeichenfolge, um einer Tabellenzelle eine Formel hinzuzufügen.

note

Alle Calc-Funktionen müssen mit ihren englischen Namen ausgedrückt werden.


Beispiel:


Sub AssignFormulaToCell
REM Fügt Zelle A1 eine Formel hinzu. Der Funktionsname muss auf Englisch sein.
    oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
    oCell.Formula = "=SUM(B1:B10)"
REM Zelle A1 zeigt den lokalisierten Funktionsnamen an
End Sub

Aufrufen von Add-In-Berechnungsfunktionen in BASIC

Die Add-In-Funktionen von Calc befinden sich in den UNO-Diensten com.sun.star.sheet.addin.Analysis, com.sun.star.sheet.addin.DateFunctions und com.sun.star.sheet.addin.PricingFunctions.

Beispiel:


REM Beispiel für den Aufruf der Add-In-Funktion WURZELPI
Function MeineWURZELPI(arg as double) as double
   Dim oService as Object
   oService = createUNOService("com.sun.star.sheet.addin.Analysis")
   MeineWURZELPI = oService.getSqrtPi(arg)
End Function

Festlegen von Zellformeln mit Add-In-Funktionen

Die Add-In-Funktion muss durch ihren UNO-Dienstnamen ausgedrückt werden.

Beispiel:


Sub AssignAddInFormulaToCell
REM Fügt Zelle A1 eine Add-In-Formel hinzu. Funktionsname ist der UNO-Dienstname.
    oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
    oCell.Formula = "=com.sun.star.sheet.addin.Analysis.getBin2Dec(B1)"
REM Zelle A1 zeigt den lokalisierten Funktionsnamen an
End Sub

Namen des UNO-Diensts der Add-In-Funktionen für Analysis

Die folgende Tabelle zeigt eine Liste aller Add-In-Funktionen für Analysis von Calc und ihrer jeweiligen UNO-Dienstnamen.

Funktionsname in Calc

Name des UNO-Diensts

AUFGELZINS

com.sun.star.sheet.addin.Analysis.getAccrint

AUFGELZINSF

com.sun.star.sheet.addin.Analysis.getAccrintm

AMORDEGRK

com.sun.star.sheet.addin.Analysis.getAmordegrc

AMORLINEARK

com.sun.star.sheet.addin.Analysis.getAmorlinc

BESSELI

com.sun.star.sheet.addin.Analysis.getBesseli

BESSELJ

com.sun.star.sheet.addin.Analysis.getBesselj

BESSELK

com.sun.star.sheet.addin.Analysis.getBesselk

BESSELY

com.sun.star.sheet.addin.Analysis.getBessely

BININDEZ

com.sun.star.sheet.addin.Analysis.getBin2Dec

BININHEX

com.sun.star.sheet.addin.Analysis.getBin2Hex

BININOKT

com.sun.star.sheet.addin.Analysis.getBin2Oct

KOMPLEXE

com.sun.star.sheet.addin.Analysis.getComplex

UMRECHNEN

com.sun.star.sheet.addin.Analysis.getConvert

ZINSTERMTAGVA

com.sun.star.sheet.addin.Analysis.getCoupdaybs

ZINSTERMTAGE

com.sun.star.sheet.addin.Analysis.getCoupdays

ZINSTERMTAGNZ

com.sun.star.sheet.addin.Analysis.getCoupdaysnc

ZINSTERMNZ

com.sun.star.sheet.addin.Analysis.getCoupncd

ZINSTERMZAHL

com.sun.star.sheet.addin.Analysis.getCoupnum

ZINSTERMVZ

com.sun.star.sheet.addin.Analysis.getCouppcd

KUMZINSZ

com.sun.star.sheet.addin.Analysis.getCumipmt

KUMKAPITAL

com.sun.star.sheet.addin.Analysis.getCumprinc

DEZINBIN

com.sun.star.sheet.addin.Analysis.getDec2Bin

DEZINHEX

com.sun.star.sheet.addin.Analysis.getDec2Hex

DEZINOKT

com.sun.star.sheet.addin.Analysis.getDec2Oct

DELTA

com.sun.star.sheet.addin.Analysis.getDelta

DISAGIO

com.sun.star.sheet.addin.Analysis.getDisc

NOTIERUNGDEZ

com.sun.star.sheet.addin.Analysis.getDollarde

NOTIERUNGBRU

com.sun.star.sheet.addin.Analysis.getDollarfr

LAUFZEIT

com.sun.star.sheet.addin.Analysis.getDuration

EDATUM

com.sun.star.sheet.addin.Analysis.getEdate

EFFEKTIV

com.sun.star.sheet.addin.Analysis.getEffect

MONATSENDE

com.sun.star.sheet.addin.Analysis.getEomonth

GAUSSFEHLER

com.sun.star.sheet.addin.Analysis.getErf

GAUSSFKOMPL

com.sun.star.sheet.addin.Analysis.getErfc

ZWEIFAKULTÄT

com.sun.star.sheet.addin.Analysis.getFactdouble

ZW2

com.sun.star.sheet.addin.Analysis.getFvschedule

GGT

com.sun.star.sheet.addin.Analysis.getGcd

GGANZZAHL

com.sun.star.sheet.addin.Analysis.getGestep

HEXINBIN

com.sun.star.sheet.addin.Analysis.getHex2Bin

HEXINDEZ

com.sun.star.sheet.addin.Analysis.getHex2Dec

HEXINOKT

com.sun.star.sheet.addin.Analysis.getHex2Oct

IMABS

com.sun.star.sheet.addin.Analysis.getImabs

IMAGINÄRTEIL

com.sun.star.sheet.addin.Analysis.getImaginary

IMARGUMENT

com.sun.star.sheet.addin.Analysis.getImargument

IMKONJUGIERT

com.sun.star.sheet.addin.Analysis.getImconjugate

IMCOS

com.sun.star.sheet.addin.Analysis.getImcos

IMCOSHYP

com.sun.star.sheet.addin.Analysis.getImcosh

IMCOT

com.sun.star.sheet.addin.Analysis.getImcot

IMCOSEC

com.sun.star.sheet.addin.Analysis.getImcsc

IMCOSECHYP

com.sun.star.sheet.addin.Analysis.getImcsch

IMDIV

com.sun.star.sheet.addin.Analysis.getImdiv

IMEXP

com.sun.star.sheet.addin.Analysis.getImexp

IMLN

com.sun.star.sheet.addin.Analysis.getImln

IMLOG10

com.sun.star.sheet.addin.Analysis.getImlog10

IMLOG2

com.sun.star.sheet.addin.Analysis.getImlog2

IMPOTENZ

com.sun.star.sheet.addin.Analysis.getImpower

IMPRODUKT

com.sun.star.sheet.addin.Analysis.getImproduct

IMREALTEIL

com.sun.star.sheet.addin.Analysis.getImreal

IMSEC

com.sun.star.sheet.addin.Analysis.getImsec

IMSECHYP

com.sun.star.sheet.addin.Analysis.getImsech

IMSIN

com.sun.star.sheet.addin.Analysis.getImsin

IMSINHYP

com.sun.star.sheet.addin.Analysis.getImsinh

IMWURZEL

com.sun.star.sheet.addin.Analysis.getImsqrt

IMSUB

com.sun.star.sheet.addin.Analysis.getImsub

IMSUMME

com.sun.star.sheet.addin.Analysis.getImsum

IMTAN

com.sun.star.sheet.addin.Analysis.getImtan

ZINSSATZ

com.sun.star.sheet.addin.Analysis.getIntrate

ISTGERADE

com.sun.star.sheet.addin.Analysis.getIseven

ISTUNGERADE

com.sun.star.sheet.addin.Analysis.getIsodd

KGV

com.sun.star.sheet.addin.Analysis.getLcm

MLAUFZEIT

com.sun.star.sheet.addin.Analysis.getMduration

VRUNDEN

com.sun.star.sheet.addin.Analysis.getMround

POLYNOMIAL

com.sun.star.sheet.addin.Analysis.getMultinomial

NETTOARBEITSTAGE

com.sun.star.sheet.addin.Analysis.getNetworkdays

NOMINAL

com.sun.star.sheet.addin.Analysis.getNominal

OKTINBIN

com.sun.star.sheet.addin.Analysis.getOct2Bin

OKTINDEZ

com.sun.star.sheet.addin.Analysis.getOct2Dec

OKTINHEX

com.sun.star.sheet.addin.Analysis.getOct2Hex

UNREGERKURS

com.sun.star.sheet.addin.Analysis.getOddfprice

UNREGERREND

com.sun.star.sheet.addin.Analysis.getOddfyield

UNREGLEKURS

com.sun.star.sheet.addin.Analysis.getOddlprice

UNREGLEREND

com.sun.star.sheet.addin.Analysis.getOddlyield

KURS

com.sun.star.sheet.addin.Analysis.getPrice

KURSDISAGIO

com.sun.star.sheet.addin.Analysis.getPricedisc

KURSFÄLLIG

com.sun.star.sheet.addin.Analysis.getPricemat

QUOTIENT

com.sun.star.sheet.addin.Analysis.getQuotient

ZUFALLSBEREICH

com.sun.star.sheet.addin.Analysis.getRandbetween

AUSZAHLUNG

com.sun.star.sheet.addin.Analysis.getReceived

POTENZREIHE

com.sun.star.sheet.addin.Analysis.getSeriessum

WURZELPI

com.sun.star.sheet.addin.Analysis.getSqrtpi

TBILLÄQUIV

com.sun.star.sheet.addin.Analysis.getTbilleq

TBILLKURS

com.sun.star.sheet.addin.Analysis.getTbillprice

TBILLRENDITE

com.sun.star.sheet.addin.Analysis.getTbillyield

KALENDERWOCHE

com.sun.star.sheet.addin.Analysis.getWeeknum

ARBEITSTAG

com.sun.star.sheet.addin.Analysis.getWorkday

XINTZINSFUSS

com.sun.star.sheet.addin.Analysis.getXirr

XKAPITALWERT

com.sun.star.sheet.addin.Analysis.getXnpv

BRTEILJAHRE

com.sun.star.sheet.addin.Analysis.getYearfrac

RENDITE

com.sun.star.sheet.addin.Analysis.getYield

RENDITEDIS

com.sun.star.sheet.addin.Analysis.getYielddisc

RENDITEFÄLL

com.sun.star.sheet.addin.Analysis.getYieldmat


Namen des UNO-Diensts der Add-In-Funktionen für Daten

Die folgende Tabelle zeigt eine Liste aller Add-In-Funktionen für Daten von Calc und ihrer jeweiligen UNO-Dienstnamen.

Funktionsname in Calc

Name des UNO-Diensts

TAGEIMMONAT

com.sun.star.sheet.addin.DateFunctions.getDaysInMonth

TAGEIMJAHR

com.sun.star.sheet.addin.DateFunctions.getDaysInMonth

MONATE

com.sun.star.sheet.addin.DateFunctions.getDiffMonths

WOCHEN

com.sun.star.sheet.addin.DateFunctions.getDiffWeeks

JAHRE

com.sun.star.sheet.addin.DateFunctions.getDiffYears

ROT13

com.sun.star.sheet.addin.DateFunctions.getRot13

WOCHENIMJAHR

com.sun.star.sheet.addin.DateFunctions.getWeeksInYear


Namen des UNO-Diensts der Add-In-Funktionen für Preisgestaltung

Die folgende Tabelle zeigt eine Liste aller Add-In-Funktionen für Preisgestaltung von Calc und ihrer jeweiligen UNO-Dienstnamen.

Funktionsname in Calc

Name des UNO-Diensts

OPT_BARRIER

com.sun.star.sheet.addin.PrincingFunctions.getOptBarrier

OPT_PROB_HIT

com.sun.star.sheet.addin.PrincingFunctions.getOptProbHit

OPT_PROB_INMONEY

com.sun.star.sheet.addin.PrincingFunctions.getOptProbInMoney

OPT_TOUCH

com.sun.star.sheet.addin.PrincingFunctions.getOptTouch


Bitte unterstützen Sie uns!