Guida di LibreOffice 25.2
In aggiunta alle funzioni native di BASIC, potete richiamare le funzione di Calc nelle macro e negli script e impostarle nelle formule delle celle.
Usare la funzione CreateUNOService per accedere al servizio com.sun.star.sheet.FunctionAccess.
L'esempio seguente crea una funzione denominata MyVlook che richiama la funzione VLOOKUP (CERCA.VERT) di Calc su di una matrice di dati passata come argomento e restituisce il valore trovato dalla funzione.
    Function MyVlook(Lookup, DataArray As Object, Index As Integer, SortedRangeLookup as Byte)
        Dim oService As Object
        Set oService = CreateUnoService("com.sun.star.sheet.FunctionAccess")
        ' Usate sempre i nomi delle funzioni in inglese
        MyVlook = oService.callFunction("VLOOKUP", Array(Lookup, DataArray, Index, SortedRangeLookup))
    End Function
  La macro seguente presenta un esempio di come è possibile richiamare la funzione MyVlook. Prima viene creata una matrice di dati di 5 per 2, poi viene richiamata la funzione MyVlook e visualizzato il valore restituito usando un MsgBox.
    Sub CallingMyVlook()
        ' Crea una matrice di 5 per 2 e la riempie di dati
        Dim myData(1 to 5, 1 to 2) as Variant
        myData(1, 1) = 1 : myData(1, 2) = "Totalmente in disaccordo"
        myData(2, 1) = 3 : myData(2, 2) = "In disaccordo"
        myData(3, 1) = 5 : myData(3, 2) = "Indeciso"
        myData(4, 1) = 7 : myData(4, 2) = "D'accordo"
        myData(5, 1) = 9 : myData(5, 2) = "Totalmente d'accordo"
        ' Ricerca la matrice di dati
        Dim result as String
        result = MyVlook(4, myData, 2, 1)
        ' Visualizza il messaggio "In disaccordo"
        MsgBox result
    End Sub
  Usate una stringa con il testo della formula per aggiungerla a una cella del foglio di calcolo.
Tutte le funzioni di Calc devono essere espresse con il loro nome in inglese.
Sub AssignFormulaToCell
REM Aggiunge una formula alla cella A1. Il nome della funzione deve essere in inglese.
    oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
    oCell.Formula = "=SUM(B1:B10)"
REM La cella A1 visualizza il nome localizzato della funzione
End Sub
Le funzioni aggiuntive di Calc si trovano nei servizi UNO com.sun.star.sheet.addin.Analysis, com.sun.star.sheet.addin.DateFunctions e com.sun.star.sheet.addin.PricingFunctions.
REM Esempio di chiamata alla funzione aggiuntiva 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
La funzione aggiuntiva deve essere espressa con il nome del suo servizio UNO.
Sub AssignAddInFormulaToCell
REM Inserisce una formula aggiuntiva nella cella A1. Il nome della funzione è quello del servizio UNO.
    oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
    oCell.Formula = "=com.sun.star.sheet.addin.Analysis.getBin2Dec(B1)"
REM La cella A1 visualizza il nome localizzato della funzione
End Sub
La tabella seguente presenta un elenco di tutte le funzioni aggiuntive per le analisi di Calc con il nome dei rispettivi servizi UNO.
| Nome della funzione di Calc | Nome del servizio UNO | 
|---|---|
| INT.MATURATO.PER | com.sun.star.sheet.addin.Analysis.getAccrint | 
| INT.MATURATO.SCAD | com.sun.star.sheet.addin.Analysis.getAccrintm | 
| AMMORT.DEGR | com.sun.star.sheet.addin.Analysis.getAmordegrc | 
| AMMORT.PER | 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 | 
| BINARIO.DECIMALE | com.sun.star.sheet.addin.Analysis.getBin2Dec | 
| BINARIO.HEX | com.sun.star.sheet.addin.Analysis.getBin2Hex | 
| BINARIO.OCT | com.sun.star.sheet.addin.Analysis.getBin2Oct | 
| COMPLESSO | com.sun.star.sheet.addin.Analysis.getComplex | 
| CONVERTI | com.sun.star.sheet.addin.Analysis.getConvert | 
| GIORNI.CED.INIZ.LIQ | com.sun.star.sheet.addin.Analysis.getCoupdaybs | 
| GIORNI.CED | com.sun.star.sheet.addin.Analysis.getCoupdays | 
| GIORNI.CED.NUOVA | com.sun.star.sheet.addin.Analysis.getCoupdaysnc | 
| DATA.CED.SUCC | com.sun.star.sheet.addin.Analysis.getCoupncd | 
| NUM.CEDOLA | com.sun.star.sheet.addin.Analysis.getCoupnum | 
| DATA.CED.PREC | com.sun.star.sheet.addin.Analysis.getCouppcd | 
| INT.CUMUL | com.sun.star.sheet.addin.Analysis.getCumipmt | 
| CAP.CUM | com.sun.star.sheet.addin.Analysis.getCumprinc | 
| DECIMALE.BINARIO | com.sun.star.sheet.addin.Analysis.getDec2Bin | 
| DECIMALE.HEX | com.sun.star.sheet.addin.Analysis.getDec2Hex | 
| DECIMALE.OCT | com.sun.star.sheet.addin.Analysis.getDec2Oct | 
| DELTA | com.sun.star.sheet.addin.Analysis.getDelta | 
| TASSO.SCONTO | com.sun.star.sheet.addin.Analysis.getDisc | 
| VALUTA.DEC | com.sun.star.sheet.addin.Analysis.getDollarde | 
| VALUTA.FRAZ | com.sun.star.sheet.addin.Analysis.getDollarfr | 
| DURATA | com.sun.star.sheet.addin.Analysis.getDuration | 
| DATA.MESE | com.sun.star.sheet.addin.Analysis.getEdate | 
| INT.EFFETTIVO | com.sun.star.sheet.addin.Analysis.getEffect | 
| FINE.MESE | com.sun.star.sheet.addin.Analysis.getEomonth | 
| FUNZ.ERRORE | com.sun.star.sheet.addin.Analysis.getErf | 
| FUNZIONE.ERRORE.COMP | com.sun.star.sheet.addin.Analysis.getErfc | 
| FATT.DOPPIO | com.sun.star.sheet.addin.Analysis.getFactdouble | 
| VAL.FUT.CAPITALE | com.sun.star.sheet.addin.Analysis.getFvschedule | 
| MCD | com.sun.star.sheet.addin.Analysis.getGcd | 
| SOGLIA | com.sun.star.sheet.addin.Analysis.getGestep | 
| HEX.BINARIO | com.sun.star.sheet.addin.Analysis.getHex2Bin | 
| HEX.DECIMALE | com.sun.star.sheet.addin.Analysis.getHex2Dec | 
| HEX.OCT | com.sun.star.sheet.addin.Analysis.getHex2Oct | 
| COMP.MODULO | com.sun.star.sheet.addin.Analysis.getImabs | 
| COMP.IMMAGINARIO | com.sun.star.sheet.addin.Analysis.getImaginary | 
| COMP.ARGOMENTO | com.sun.star.sheet.addin.Analysis.getImargument | 
| COMP.CONIUGATO | com.sun.star.sheet.addin.Analysis.getImconjugate | 
| COMP.COS | com.sun.star.sheet.addin.Analysis.getImcos | 
| COMP.COSH | com.sun.star.sheet.addin.Analysis.getImcosh | 
| COMP.COT | com.sun.star.sheet.addin.Analysis.getImcot | 
| COMP.COSEC | com.sun.star.sheet.addin.Analysis.getImcsc | 
| COMP.COSECH | com.sun.star.sheet.addin.Analysis.getImcsch | 
| COMP.DIV | com.sun.star.sheet.addin.Analysis.getImdiv | 
| COMP.EXP | com.sun.star.sheet.addin.Analysis.getImexp | 
| COMP.LN | com.sun.star.sheet.addin.Analysis.getImln | 
| COMP.LOG10 | com.sun.star.sheet.addin.Analysis.getImlog10 | 
| COMP.LOG2 | com.sun.star.sheet.addin.Analysis.getImlog2 | 
| COMP.POTENZA | com.sun.star.sheet.addin.Analysis.getImpower | 
| COMP.PRODOTTO | com.sun.star.sheet.addin.Analysis.getImproduct | 
| COMP.PARTE.REALE | com.sun.star.sheet.addin.Analysis.getImreal | 
| COMP.SEC | com.sun.star.sheet.addin.Analysis.getImsec | 
| COMP.SECH | com.sun.star.sheet.addin.Analysis.getImsech | 
| COMP.SEN | com.sun.star.sheet.addin.Analysis.getImsin | 
| COMP.SENH | com.sun.star.sheet.addin.Analysis.getImsinh | 
| COMP.RADQ | com.sun.star.sheet.addin.Analysis.getImsqrt | 
| COMP.DIFF | com.sun.star.sheet.addin.Analysis.getImsub | 
| COMP.SOMMA | com.sun.star.sheet.addin.Analysis.getImsum | 
| COMP.TAN | com.sun.star.sheet.addin.Analysis.getImtan | 
| TASSO.INT | com.sun.star.sheet.addin.Analysis.getIntrate | 
| VAL.PARI | com.sun.star.sheet.addin.Analysis.getIseven | 
| VAL.DISPARI | com.sun.star.sheet.addin.Analysis.getIsodd | 
| MCM | com.sun.star.sheet.addin.Analysis.getLcm | 
| DURATA.M | com.sun.star.sheet.addin.Analysis.getMduration | 
| ARROTONDA.MULTIPLO | com.sun.star.sheet.addin.Analysis.getMround | 
| MULTINOMIALE | com.sun.star.sheet.addin.Analysis.getMultinomial | 
| GIORNI.LAVORATIVI.TOT | com.sun.star.sheet.addin.Analysis.getNetworkdays | 
| NOMINALE | com.sun.star.sheet.addin.Analysis.getNominal | 
| OCT.BINARIO | com.sun.star.sheet.addin.Analysis.getOct2Bin | 
| OCT.DECIMALE | com.sun.star.sheet.addin.Analysis.getOct2Dec | 
| OCT.HEX | com.sun.star.sheet.addin.Analysis.getOct2Hex | 
| PREZZO.PRIMO.IRR | com.sun.star.sheet.addin.Analysis.getOddfprice | 
| REND.PRIMO.IRR | com.sun.star.sheet.addin.Analysis.getOddfyield | 
| PREZZO.ULTIMO.IRR | com.sun.star.sheet.addin.Analysis.getOddlprice | 
| REND.ULTIMO.IRR | com.sun.star.sheet.addin.Analysis.getOddlyield | 
| PREZZO | com.sun.star.sheet.addin.Analysis.getPrice | 
| PREZZO.SCONT | com.sun.star.sheet.addin.Analysis.getPricedisc | 
| PREZZO.SCAD | com.sun.star.sheet.addin.Analysis.getPricemat | 
| QUOZIENTE | com.sun.star.sheet.addin.Analysis.getQuotient | 
| CASUALE.TRA | com.sun.star.sheet.addin.Analysis.getRandbetween | 
| RICEV.SCAD | com.sun.star.sheet.addin.Analysis.getReceived | 
| SOMMA.SERIE | com.sun.star.sheet.addin.Analysis.getSeriessum | 
| RADQ.PI.GRECO | com.sun.star.sheet.addin.Analysis.getSqrtpi | 
| BOT.EQUIV | com.sun.star.sheet.addin.Analysis.getTbilleq | 
| BOT.PREZZO | com.sun.star.sheet.addin.Analysis.getTbillprice | 
| BOT.REND | com.sun.star.sheet.addin.Analysis.getTbillyield | 
| NUM.SETTIMANA | com.sun.star.sheet.addin.Analysis.getWeeknum | 
| GIORNO.LAVORATIVO | com.sun.star.sheet.addin.Analysis.getWorkday | 
| TIR.X | com.sun.star.sheet.addin.Analysis.getXirr | 
| VAN.X | com.sun.star.sheet.addin.Analysis.getXnpv | 
| FRAZIONE.ANNO | com.sun.star.sheet.addin.Analysis.getYearfrac | 
| REND | com.sun.star.sheet.addin.Analysis.getYield | 
| REND.TITOLI.SCONT | com.sun.star.sheet.addin.Analysis.getYielddisc | 
| REND.SCAD | com.sun.star.sheet.addin.Analysis.getYieldmat | 
La tabella seguente presenta un elenco di tutte le funzioni aggiuntive di Calc relative alla data, con il nome dei rispettivi servizi UNO.
| Nome della funzione di Calc | Nome del servizio UNO | 
|---|---|
| GIORNI.MESE | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth | 
| GIORNI.ANNO | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth | 
| MESI | com.sun.star.sheet.addin.DateFunctions.getDiffMonths | 
| SETTIMANE | com.sun.star.sheet.addin.DateFunctions.getDiffWeeks | 
| ANNI | com.sun.star.sheet.addin.DateFunctions.getDiffYears | 
| ROT13 | com.sun.star.sheet.addin.DateFunctions.getRot13 | 
| SETTIMANE.ANNO | com.sun.star.sheet.addin.DateFunctions.getWeeksInYear | 
La tabella seguente presenta un elenco di tutte le funzioni aggiuntive di Calc relative ai prezzi, con il nome dei rispettivi servizi UNO.
| Nome della funzione di Calc | Nome del servizio UNO | 
|---|---|
| OPZIONE.BARRIERA | com.sun.star.sheet.addin.PrincingFunctions.getOptBarrier | 
| OPZIONE.PROB.HIT | com.sun.star.sheet.addin.PrincingFunctions.getOptProbHit | 
| OPZIONE.PROB.INMONEY | com.sun.star.sheet.addin.PrincingFunctions.getOptProbInMoney | 
| OPZIONE.TOUCH | com.sun.star.sheet.addin.PrincingFunctions.getOptTouch |