Aide LibreOffice 25.2
En plus des fonctions BASIC natives, vous pouvez appeler des fonctions Calc dans les macros et scripts et définir des fonctions Calc dans des formules de cellule.
Utilisez la fonction CreateUnoService pour accéder au service com.sun.star.sheet.FunctionAccess.
L'exemple ci-dessous crée une fonction nommée MyVlook qui appelle la fonction Calc RECHERCHEV sur une table de données passée en argument et renvoie la valeur trouvée par la fonction.
    Function MyVlook(Lookup, DataArray As Object, Index As Integer, SortedRangeLookup as Byte)
        Dim oService As Object
        Set oService = CreateUnoService("com.sun.star.sheet.FunctionAccess")
        ' Toujours utiliser le nom de la fonction en anglais
        MyVlook = oService.callFunction("VLOOKUP", Array(Lookup, DataArray, Index, SortedRangeLookup))
    End Function
  La macro ci-dessous présente un exemple de la façon dont la fonction MyVlook peut être appelée. Une matrice de données 5 sur 2 est d'abord créée, puis appelle la fonction MyVlook et affiche la valeur renvoyée à l'aide de MsgBox.
    Sub CallingMyVlook()
        ' Crée une matrice de 5 par 2 et la remplit de données
        Dim myData(1 to 5, 1 to 2) as Variant
        myData(1, 1) = 1 : myData(1, 2) = "Fortement en désaccord"
        myDatas(2, 1) = 3 : myData(2, 2) = "Pas d'accord"
        myData(3, 1) = 5 : myData(3, 2) = "Indécis"
        myDatas(4, 1) = 7 : myData(4, 2) = "D'accord"
        myData(5, 1) = 9 : myData(5, 2) = "Tout à fait d'accord"
        ' Recherche la matrice de données
        Dim result as String
        result = MyVlook(4, myData, 2, 1)
        ' Affiche le message "Pas d'accord"
        MsgBox result
    End Sub
  Utilisez la chaîne de texte de formule pour ajouter une formule à une cellule de feuille de calcul.
Toutes les fonctions Calc doivent être exprimées avec leurs noms anglais.
Sub AssignFormulaToCell
REM Ajouter une formule à la cellule A1. Le nom de la fonction doit être en anglais.
    oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
    oCell.Formula = "=SUM(B1:B10)"
La cellule REM A1 affiche le nom de la fonction traduit.
End Sub
Les fonctions Calc Add-In se trouvent dans les services UNO com.sun.star.sheet.addin.Analysis, com.sun.star.sheet.addin.DateFunctions et com.sun.star.sheet.addin.PricingFunctions.
REM Exemple d'appel de la fonction Add-in SQRTPI
Fonction MySQRTPI (arg as double) comme double
   Dim oService as Object
   oService = CreateUnoService("com.sun.star.sheet.addin.Analysis")
   MySQRTPI = oService.getSqrtPi(arg)
End Function
La fonction Add-In doit être exprimée par son nom de service UNO.
Sub AssignAddInFormulaToCell
REM Ajoutez une formule Add-In à la cellule A1. Le nom de la fonction est le nom du service UNO.
    oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
    oCell.Formula = "=com.sun.star.sheet.addin.Analysis.getBin2Dec(B1)"
La cellule REM A1 affiche le nom de la fonction traduit.
End Sub
Le tableau ci-dessous présente une liste de toutes les fonctions du complément d'analyse Calc et leurs noms de service UNO respectifs.
| Nom de la fonction Calc | Nom du service UNO | 
|---|---|
| ACCRINT | com.sun.star.sheet.addin.Analysis.getAccrint | 
| ACCRINTM | com.sun.star.sheet.addin.Analysis.getAccrintm | 
| AMORDEGRC | com.sun.star.sheet.addin.Analysis.getAmordegrc | 
| AMORLINC | 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 | 
| BIN2DEC | com.sun.star.sheet.addin.Analysis.getBin2Dec | 
| BIN2HEX | com.sun.star.sheet.addin.Analysis.getBin2Hex | 
| BIN2OCT | com.sun.star.sheet.addin.Analysis.getBin2Oct | 
| COMPLEX | com.sun.star.sheet.addin.Analysis.getComplex | 
| CONVERT | com.sun.star.sheet.addin.Analysis.getConvert | 
| COUPDAYBS | com.sun.star.sheet.addin.Analysis.getCoupdaybs | 
| COUPDAYS | com.sun.star.sheet.addin.Analysis.getCoupdays | 
| COUPDAYSNC | com.sun.star.sheet.addin.Analysis.getCoupdaysnc | 
| COUPNCD | com.sun.star.sheet.addin.Analysis.getCoupncd | 
| COUPNUM | com.sun.star.sheet.addin.Analysis.getCoupnum | 
| COUPPCD | com.sun.star.sheet.addin.Analysis.getCouppcd | 
| CUMIPMT | com.sun.star.sheet.addin.Analysis.getCumipmt | 
| CUMPRINC | com.sun.star.sheet.addin.Analysis.getCumprinc | 
| DEC2BIN | com.sun.star.sheet.addin.Analysis.getDec2Bin | 
| DEC2HEX | com.sun.star.sheet.addin.Analysis.getDec2Hex | 
| DEC2OCT | com.sun.star.sheet.addin.Analysis.getDec2Oct | 
| DELTA | com.sun.star.sheet.addin.Analysis.getDelta | 
| DISC | com.sun.star.sheet.addin.Analysis.getDisc | 
| DOLLARDE | com.sun.star.sheet.addin.Analysis.getDollarde | 
| DOLLARFR | com.sun.star.sheet.addin.Analysis.getDollarfr | 
| DURATION | com.sun.star.sheet.addin.Analysis.getDuration | 
| EDATE | com.sun.star.sheet.addin.Analysis.getEdate | 
| EFFECT | com.sun.star.sheet.addin.Analysis.getEffect | 
| EOMONTH | com.sun.star.sheet.addin.Analysis.getEomonth | 
| ERF | com.sun.star.sheet.addin.Analysis.getErf | 
| ERFC | com.sun.star.sheet.addin.Analysis.getErfc | 
| FACTDOUBLE | com.sun.star.sheet.addin.Analysis.getFactdouble | 
| FVSCHEDULE | com.sun.star.sheet.addin.Analysis.getFvschedule | 
| GCD | com.sun.star.sheet.addin.Analysis.getGcd | 
| GESTEP | com.sun.star.sheet.addin.Analysis.getGestep | 
| HEX2BIN | com.sun.star.sheet.addin.Analysis.getHex2Bin | 
| HEX2DEC | com.sun.star.sheet.addin.Analysis.getHex2Dec | 
| HEX2OCT | com.sun.star.sheet.addin.Analysis.getHex2Oct | 
| IMABS | com.sun.star.sheet.addin.Analysis.getImabs | 
| IMAGINARY | com.sun.star.sheet.addin.Analysis.getImaginary | 
| IMARGUMENT | com.sun.star.sheet.addin.Analysis.getImargument | 
| IMCONJUGATE | com.sun.star.sheet.addin.Analysis.getImconjugate | 
| IMCOS | com.sun.star.sheet.addin.Analysis.getImcos | 
| IMCOSH | com.sun.star.sheet.addin.Analysis.getImcosh | 
| IMCOT | com.sun.star.sheet.addin.Analysis.getImcot | 
| IMCSC | com.sun.star.sheet.addin.Analysis.getImcsc | 
| IMCSCH | 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 | 
| IMPOWER | com.sun.star.sheet.addin.Analysis.getImpower | 
| IMPRODUCT | com.sun.star.sheet.addin.Analysis.getImproduct | 
| IMREAL | com.sun.star.sheet.addin.Analysis.getImreal | 
| IMSEC | com.sun.star.sheet.addin.Analysis.getImsec | 
| IMSECH | com.sun.star.sheet.addin.Analysis.getImsech | 
| IMSIN | com.sun.star.sheet.addin.Analysis.getImsin | 
| IMSINH | com.sun.star.sheet.addin.Analysis.getImsinh | 
| IMSQRT | com.sun.star.sheet.addin.Analysis.getImsqrt | 
| IMSUB | com.sun.star.sheet.addin.Analysis.getImsub | 
| IMSUM | com.sun.star.sheet.addin.Analysis.getImsum | 
| IMTAN | com.sun.star.sheet.addin.Analysis.getImtan | 
| INTRATE | com.sun.star.sheet.addin.Analysis.getIntrate | 
| ISEVEN | com.sun.star.sheet.addin.Analysis.getIseven | 
| ISODD | com.sun.star.sheet.addin.Analysis.getIsodd | 
| LCM | com.sun.star.sheet.addin.Analysis.getLcm | 
| MDURATION | com.sun.star.sheet.addin.Analysis.getMduration | 
| MROUND | com.sun.star.sheet.addin.Analysis.getMround | 
| MULTINOMIAL | com.sun.star.sheet.addin.Analysis.getMultinomial | 
| NETWORKDAYS | com.sun.star.sheet.addin.Analysis.getNetworkdays | 
| NOMINAL | com.sun.star.sheet.addin.Analysis.getNominal | 
| OCT2BIN | com.sun.star.sheet.addin.Analysis.getOct2Bin | 
| OCT2DEC | com.sun.star.sheet.addin.Analysis.getOct2Dec | 
| OCT2HEX | com.sun.star.sheet.addin.Analysis.getOct2Hex | 
| ODDFPRICE | com.sun.star.sheet.addin.Analysis.getOddfprice | 
| ODDFYIELD | com.sun.star.sheet.addin.Analysis.getOddfyield | 
| ODDLPRICE | com.sun.star.sheet.addin.Analysis.getOddlprice | 
| ODDLYIELD | com.sun.star.sheet.addin.Analysis.getOddlyield | 
| PRICE | com.sun.star.sheet.addin.Analysis.getPrice | 
| PRICEDISC | com.sun.star.sheet.addin.Analysis.getPricedisc | 
| PRICEMAT | com.sun.star.sheet.addin.Analysis.getPricemat | 
| QUOTIENT | com.sun.star.sheet.addin.Analysis.getQuotient | 
| RANDBETWEEN | com.sun.star.sheet.addin.Analysis.getRandbetween | 
| RECEIVED | com.sun.star.sheet.addin.Analysis.getReceived | 
| SERIESSUM | com.sun.star.sheet.addin.Analysis.getSeriessum | 
| SQRTPI | com.sun.star.sheet.addin.Analysis.getSqrtpi | 
| TBILLEQ | com.sun.star.sheet.addin.Analysis.getTbilleq | 
| TBILLPRICE | com.sun.star.sheet.addin.Analysis.getTbillprice | 
| TBILLYIELD | com.sun.star.sheet.addin.Analysis.getTbillyield | 
| WEEKNUM | com.sun.star.sheet.addin.Analysis.getWeeknum | 
| WORKDAY | com.sun.star.sheet.addin.Analysis.getWorkday | 
| XIRR | com.sun.star.sheet.addin.Analysis.getXirr | 
| XNPV | com.sun.star.sheet.addin.Analysis.getXnpv | 
| YEARFRAC | com.sun.star.sheet.addin.Analysis.getYearfrac | 
| YIELD | com.sun.star.sheet.addin.Analysis.getYield | 
| YIELDDISC | com.sun.star.sheet.addin.Analysis.getYielddisc | 
| YIELDMAT | com.sun.star.sheet.addin.Analysis.getYieldmat | 
Le tableau ci-dessous présente une liste de toutes les fonctions du complément Calc Date et leurs noms de service UNO respectifs.
| Nom de la fonction Calc | Nom du service UNO | 
|---|---|
| JOURSDANSMOIS | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth | 
| JOURSDANSANNEE | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth | 
| NB.MOIS | com.sun.star.sheet.addin.DateFunctions.getDiffMonths | 
| SEMAINES | com.sun.star.sheet.addin.DateFunctions.getDiffWeeks | 
| ANNEES | com.sun.star.sheet.addin.DateFunctions.getDiffYears | 
| ROT13 | com.sun.star.sheet.addin.DateFunctions.getRot13 | 
| SEMAINESDANSANNEE | com.sun.star.sheet.addin.DateFunctions.getWeeksInYear | 
Le tableau ci-dessous présente une liste de toutes les fonctions de Calc Pricing Add-In et leurs noms de service UNO respectifs.
| Nom de la fonction Calc | Nom du service UNO | 
|---|---|
| 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 |