Pomoc LibreOffice 24.8
Oprócz natywnych funkcji języka BASIC można wywoływać funkcje programu Calc w makrach i skryptach oraz ustawiać funkcje programu Calc w formułach komórek.
Użyj funkcji CreateUnoService, aby uzyskać dostęp do usługi com.sun.star.sheet.FunctionAccess.
Poniższy przykład tworzy funkcję o nazwie MyVlook, która wywołuje funkcję WYSZUKAJ.PIONOWO Calc na tablicy danych przekazanej jako argument i zwraca wartość znalezioną przez funkcję.
    Function MyVlook(Lookup, DataArray As Object, Index As Integer, SortedRangeLookup as Byte)
        Dim oService As Object
        Set oService = CreateUnoService("com.sun.star.sheet.FunctionAccess")
        ' Zawsze używaj nazwy funkcji w języku angielskim
        MyVlook = oService.callFunction("VLOOKUP", Array(Lookup, DataArray, Index, SortedRangeLookup))
    End Function
  Poniższe makro przedstawia przykład wywołania funkcji MyVlook. Najpierw tworzy tablicę danych 5 na 2, a następnie wywołuje funkcję MyVlook i wyświetla zwróconą wartość za pomocą MsgBox.
    Sub CallingMyVlook()
        ' Tworzy tablicę 5 na 2 i wypełnia ją danymi
        Dim myData(1 to 5, 1 to 2) as Variant
        myData(1, 1) = 1 : myData(1, 2) = "Zdecydowanie się nie zgadzam"
        myData(2, 1) = 3 : myData(2, 2) = "Nie zgadzam się"
        myData(3, 1) = 5 : myData(3, 2) = "Jeszcze nie wiem"
        myData(4, 1) = 7 : myData(4, 2) = "Zgadzam się"
        myData(5, 1) = 9 : myData(5, 2) = "Zdecydowanie zgadzam się"
        ' Wyszukuje tablicę danych
        Dim result as String
        result = MyVlook(4, myData, 2, 1)
        ' Wyświetla komunikat „Nie zgadzam się”
        MsgBox result
    End Sub
  Użyj ciągu tekstowego formuły, aby dodać formułę do komórki arkusza kalkulacyjnego.
Wszystkie funkcje Calc muszą być napisane przy użyciu angielskich nazw.
Sub AssignFormulaToCell
REM Dodaj formułę do komórki A1. Nazwa funkcji musi być w języku angielskim.
    oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
    oCell.Formula = "=SUM(B1:B10)"
REM Komórka A1 wyświetla zlokalizowaną nazwę funkcji
End Sub
Funkcje dodatków Calc znajdują się w usługach UNO: com.sun.star.sheet.addin.Analysis, com.sun.star.sheet.addin.DateFunctions i com.sun.star.sheet.addin.PricingFunctions.
REM Przykład wywołania funkcji dodatku SQRTPI
Function MySQRTPI(arg as double) as double
   Dim oService as Object
   oService = CreateUnoService("com.sun.star.sheet.addin.Analysis")
   MySQRTPI = oService.getSqrtPi(arg)
End Function
Funkcja dodatku musi być wyrażona przez nazwę usługi UNO.
Sub AssignAddInFormulaToCell
REM Dodaj formułę dodatku do komórki A1. Nazwa funkcji to nazwa usługi UNO.
    oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
    oCell.Formula = "=com.sun.star.sheet.addin.Analysis.getBin2Dec(B1)"
REM Komórka A1 wyświetla zlokalizowaną nazwę funkcji
End Sub
Poniższa tabela przedstawia listę wszystkich funkcji dodatku analizy Calc i odpowiadających im nazw usług UNO.
| Nazwa funkcji Calc | Nazwa usługi UNO | 
|---|---|
| NAL.ODS | com.sun.star.sheet.addin.Analysis.getAccrint | 
| NAL.ODS.WYKUP | com.sun.star.sheet.addin.Analysis.getAccrintm | 
| AMORT.NIELIN | com.sun.star.sheet.addin.Analysis.getAmordegrc | 
| AMORT.LIN | com.sun.star.sheet.addin.Analysis.getAmorlinc | 
| BESSEL.I | com.sun.star.sheet.addin.Analysis.getBesseli | 
| BESSEL.J | com.sun.star.sheet.addin.Analysis.getBesselj | 
| BESSEL.K | com.sun.star.sheet.addin.Analysis.getBesselk | 
| BESSEL.Y | com.sun.star.sheet.addin.Analysis.getBessely | 
| DWÓJK.NA.DZIES | com.sun.star.sheet.addin.Analysis.getBin2Dec | 
| DWÓJK.NA.SZESN | com.sun.star.sheet.addin.Analysis.getBin2Hex | 
| DWÓJK.NA.ÓSM | com.sun.star.sheet.addin.Analysis.getBin2Oct | 
| LICZBA.ZESP | com.sun.star.sheet.addin.Analysis.getComplex | 
| KONWERTUJ | com.sun.star.sheet.addin.Analysis.getConvert | 
| WYPŁ.DNI.OD.POCZ | com.sun.star.sheet.addin.Analysis.getCoupdaybs | 
| WYPŁ.DNI | com.sun.star.sheet.addin.Analysis.getCoupdays | 
| WYPŁ.DNI.NAST | com.sun.star.sheet.addin.Analysis.getCoupdaysnc | 
| WYPŁ.DATA.NAST | com.sun.star.sheet.addin.Analysis.getCoupncd | 
| WYPŁ.LICZBA | com.sun.star.sheet.addin.Analysis.getCoupnum | 
| WYPŁ.DATA.POPRZ | com.sun.star.sheet.addin.Analysis.getCouppcd | 
| SPŁAC.ODS | com.sun.star.sheet.addin.Analysis.getCumipmt | 
| SPŁAC.KAPIT | com.sun.star.sheet.addin.Analysis.getCumprinc | 
| DZIES.NA.DWÓJK | com.sun.star.sheet.addin.Analysis.getDec2Bin | 
| DZIES.NA.SZESN | com.sun.star.sheet.addin.Analysis.getDec2Hex | 
| DZIES.NA.ÓSM | com.sun.star.sheet.addin.Analysis.getDec2Oct | 
| CZY.RÓWNE | com.sun.star.sheet.addin.Analysis.getDelta | 
| STOPA.DYSK | com.sun.star.sheet.addin.Analysis.getDisc | 
| CENA.DZIES | com.sun.star.sheet.addin.Analysis.getDollarde | 
| CENA.UŁAM | com.sun.star.sheet.addin.Analysis.getDollarfr | 
| ROCZ.PRZYCH | com.sun.star.sheet.addin.Analysis.getDuration | 
| NR.SER.DATY | com.sun.star.sheet.addin.Analysis.getEdate | 
| EFEKTYWNA | com.sun.star.sheet.addin.Analysis.getEffect | 
| NR.SER.OST.DN.MIES | com.sun.star.sheet.addin.Analysis.getEomonth | 
| FUNKCJA.BŁ | com.sun.star.sheet.addin.Analysis.getErf | 
| KOMP.FUNKCJA.BŁ | com.sun.star.sheet.addin.Analysis.getErfc | 
| SILNIA.DWUKR | com.sun.star.sheet.addin.Analysis.getFactdouble | 
| WART.PRZYSZŁ.KAP | com.sun.star.sheet.addin.Analysis.getFvschedule | 
| NAJW.WSP.DZIEL | com.sun.star.sheet.addin.Analysis.getGcd | 
| SPRAWDŹ.PRÓG | com.sun.star.sheet.addin.Analysis.getGestep | 
| SZESN.NA.DWÓJK | com.sun.star.sheet.addin.Analysis.getHex2Bin | 
| SZESN.NA.DZIES | com.sun.star.sheet.addin.Analysis.getHex2Dec | 
| SZESN.NA.ÓSM | com.sun.star.sheet.addin.Analysis.getHex2Oct | 
| MODUŁ.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImabs | 
| CZ.UROJ.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImaginary | 
| ARG.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImargument | 
| SPRZĘŻ.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImconjugate | 
| COS.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImcos | 
| COSH.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImcosh | 
| COTAN.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImcot | 
| CSC.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImcsc | 
| CSCH.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImcsch | 
| ILORAZ.LICZB.ZESP | com.sun.star.sheet.addin.Analysis.getImdiv | 
| EXP.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImexp | 
| LN.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImln | 
| LOG10.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImlog10 | 
| LOG2.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImlog2 | 
| POTĘGA.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImpower | 
| ILOCZYN.LICZB.ZESP | com.sun.star.sheet.addin.Analysis.getImproduct | 
| CZ.RZECZ.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImreal | 
| SEC.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImsec | 
| SECH.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImsech | 
| SIN.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImsin | 
| SINH.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImsinh | 
| PIERWIASTEK.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImsqrt | 
| RÓŻN.LICZB.ZESP | com.sun.star.sheet.addin.Analysis.getImsub | 
| SUMA.LICZB.ZESP | com.sun.star.sheet.addin.Analysis.getImsum | 
| TAN.LICZBY.ZESP | com.sun.star.sheet.addin.Analysis.getImtan | 
| STOPA.PROC | com.sun.star.sheet.addin.Analysis.getIntrate | 
| CZY.PARZYSTE | com.sun.star.sheet.addin.Analysis.getIseven | 
| CZY.NIEPARZYSTE | com.sun.star.sheet.addin.Analysis.getIsodd | 
| NAJMN.WSP.WIEL | com.sun.star.sheet.addin.Analysis.getLcm | 
| ROCZ.PRZYCH.M | com.sun.star.sheet.addin.Analysis.getMduration | 
| ZAOKR.DO.WIELOKR | com.sun.star.sheet.addin.Analysis.getMround | 
| WIELOMIAN | com.sun.star.sheet.addin.Analysis.getMultinomial | 
| DNI.ROBOCZE | com.sun.star.sheet.addin.Analysis.getNetworkdays | 
| NOMINALNA | com.sun.star.sheet.addin.Analysis.getNominal | 
| ÓSM.NA.DWÓJK | com.sun.star.sheet.addin.Analysis.getOct2Bin | 
| ÓSM.NA.DZIES | com.sun.star.sheet.addin.Analysis.getOct2Dec | 
| ÓSM.NA.SZESN | com.sun.star.sheet.addin.Analysis.getOct2Hex | 
| CENA.PIERW.OKR | com.sun.star.sheet.addin.Analysis.getOddfprice | 
| RENT.PIERW.OKR | com.sun.star.sheet.addin.Analysis.getOddfyield | 
| CENA.OST.OKR | com.sun.star.sheet.addin.Analysis.getOddlprice | 
| RENT.OST.OKR | com.sun.star.sheet.addin.Analysis.getOddlyield | 
| CENA | com.sun.star.sheet.addin.Analysis.getPrice | 
| CENA.DYSK | com.sun.star.sheet.addin.Analysis.getPricedisc | 
| CENA.WYKUP | com.sun.star.sheet.addin.Analysis.getPricemat | 
| CZ.CAŁK.DZIELENIA | com.sun.star.sheet.addin.Analysis.getQuotient | 
| LOS.ZAKR | com.sun.star.sheet.addin.Analysis.getRandbetween | 
| KWOTA.WYKUP | com.sun.star.sheet.addin.Analysis.getReceived | 
| SUMA.SZER.POT | com.sun.star.sheet.addin.Analysis.getSeriessum | 
| PIERW.PI | com.sun.star.sheet.addin.Analysis.getSqrtpi | 
| RENT.EKW.BS | com.sun.star.sheet.addin.Analysis.getTbilleq | 
| CENA.BS | com.sun.star.sheet.addin.Analysis.getTbillprice | 
| RENT.BS | com.sun.star.sheet.addin.Analysis.getTbillyield | 
| NUM.TYG | com.sun.star.sheet.addin.Analysis.getWeeknum | 
| DZIEŃ.ROBOCZY | com.sun.star.sheet.addin.Analysis.getWorkday | 
| XIRR | com.sun.star.sheet.addin.Analysis.getXirr | 
| XNPV | com.sun.star.sheet.addin.Analysis.getXnpv | 
| CZĘŚĆ.ROKU | com.sun.star.sheet.addin.Analysis.getYearfrac | 
| RENTOWNOŚĆ | com.sun.star.sheet.addin.Analysis.getYield | 
| RENT.DYSK | com.sun.star.sheet.addin.Analysis.getYielddisc | 
| RENT.WYKUP | com.sun.star.sheet.addin.Analysis.getYieldmat | 
Poniższa tabela przedstawia listę wszystkich funkcji dodatku daty Calc i odpowiadających im nazw usług UNO.
| Nazwa funkcji Calc | Nazwa usługi UNO | 
|---|---|
| DNI.MIESIĄCA | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth | 
| DNI.ROKU | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth | 
| MIESIĄCE | com.sun.star.sheet.addin.DateFunctions.getDiffMonths | 
| TYGODNIE | com.sun.star.sheet.addin.DateFunctions.getDiffWeeks | 
| LATA | com.sun.star.sheet.addin.DateFunctions.getDiffYears | 
| ROT13 | com.sun.star.sheet.addin.DateFunctions.getRot13 | 
| TYGODNIE.ROKU | com.sun.star.sheet.addin.DateFunctions.getWeeksInYear | 
Poniższa tabela przedstawia listę wszystkich funkcji dodatku wyceny Calc i odpowiadających im nazw usług UNO.
| Nazwa funkcji Calc | Nazwa usługi UNO | 
|---|---|
| OPC_BARIERA | com.sun.star.sheet.addin.PrincingFunctions.getOptBarrier | 
| OPC_PRAW_OSIĄG | com.sun.star.sheet.addin.PrincingFunctions.getOptProbHit | 
| OPC_PRAW_W.PIENIĄDZ | com.sun.star.sheet.addin.PrincingFunctions.getOptProbInMoney | 
| OPC_TOUCH | com.sun.star.sheet.addin.PrincingFunctions.getOptTouch |