Ajuda do LibreOffice 24.8
Além das funções BASIC nativas, você pode chamar funções do Calc em suas macros e scripts e definir funções do Calc em fórmulas de células.
Utilize a função CreateUnoService para acessar o serviço com.sun.star.sheet.FunctionAccess.
O exemplo abaixo cria uma função chamadaMyVlook que chama a função de Calc VLOOKUP sobre uma matriz de dados passada como argumento e retorna o valor encontrado pela função.
    Function MyVlook(Lookup, DataArray As Object, Index As Integer, SortedRangeLookup as Byte)
        Dim oService As Object
        Set oService = CreateUnoService("com.sun.star.sheet.FunctionAccess")
        ' Sempre use o nome da função em inglês
        MyVlook = oService.callFunction("VLOOKUP", Array(Lookup, DataArray, Index, SortedRangeLookup))
    End Function
  A macro abaixo apresenta um exemplo de como a função MyVlook pode ser chamada. Primeiro ela cria uma matriz de dados 5 por 2 e, em seguida, chama a função MyVlook e mostra o valor retornado usando a função MsgBox.
    Sub CallingMyVlook()
        ' Cria uma matriz 5 por 2 e a preenche com dados
        Dim myData(1 to 5, 1 to 2) as Variant
        myData(1, 1) = 1 : myData(1, 2) = "Discordo fortemente"
        myData(2, 1) = 3 : myData(2, 2) = "Discordo"
        myData(3, 1) = 5 : myData(3, 2) = "Indeciso"
        myData(4, 1) = 7 : myData(4, 2) = "Concordo"
        myData(5, 1) = 9 : myData(5, 2) = "Totalmente de acordo"
        ' Procura a matriz de dados
        Dim result as String
        result = MyVlook(4, myData, 2, 1)
        ' Mostra a mensagem "Discordo"
        MsgBox result
    End Sub
  Utilize o texto da fórmula para adicionar uma fórmula a uma célula da planilha.
Todas as funções do Calc devem ser expressas com seus nomes em inglês.
Sub AssignFormulaToCell
REM Adiciona uma fórmula à célula A1. O nome da função deve estar em inglês.
    oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
    oCell.Formula = "=SUM(B1:B10)"
REM Célula A1 exibe o nome da função traduzida
End Sub
As funções de suplemento (Add-In) estão disponíveis nos serviços UNO com.sun.star.sheet.addin.Analysis, com.sun.star.sheet.addin.DateFunctions e com.sun.star.sheet.addin.PricingFunctions.
REM Exemplo de chamada da função RAIZPI
Function MinhaRAIZPI(arg as double) as double
   Dim oService as Object
   oService = CreateUnoService("com.sun.star.sheet.addin.Analysis")
   MinhaRAIZPI = oService.getSqrtPi(arg)
End Function
A função Add-In deve ser expressa por seu nome de serviço UNO.
Sub AssignAddInFormulaToCell
REM Adiciona uma fórmula de suplemento à célula A1. O nome da função é o nome do serviço UNO.
    oCell = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1")
    oCell.Formula = "=com.sun.star.sheet.addin.Analysis.getBin2Dec(B1)"
REM Célula A1 exibe o nome da função traduzida
End Sub
A tabela abaixo apresenta uma lista com todas as funções de suplemento do Calc para Análise e seus respectivos nomes de serviço UNO.
| Nome da função Calc | Nome do serviço UNO | 
|---|---|
| JUROSACUM | com.sun.star.sheet.addin.Analysis.getAccrint | 
| JUROSACUMV | 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 | 
| BINADEC | com.sun.star.sheet.addin.Analysis.getBin2Dec | 
| BINAHEX | com.sun.star.sheet.addin.Analysis.getBin2Hex | 
| BINAOCT | com.sun.star.sheet.addin.Analysis.getBin2Oct | 
| COMPLEXO | com.sun.star.sheet.addin.Analysis.getComplex | 
| CONVERTER | com.sun.star.sheet.addin.Analysis.getConvert | 
| CUPDIASINLIQ | com.sun.star.sheet.addin.Analysis.getCoupdaybs | 
| CUPDIAS | com.sun.star.sheet.addin.Analysis.getCoupdays | 
| CUPDIASPRÓX | com.sun.star.sheet.addin.Analysis.getCoupdaysnc | 
| CUPDATAPRÓX | com.sun.star.sheet.addin.Analysis.getCoupncd | 
| CUPNÚM | com.sun.star.sheet.addin.Analysis.getCoupnum | 
| CUPDATAANT | com.sun.star.sheet.addin.Analysis.getCouppcd | 
| IPGTO.CUM | com.sun.star.sheet.addin.Analysis.getCumipmt | 
| PGTOPRINC | com.sun.star.sheet.addin.Analysis.getCumprinc | 
| DECABIN | com.sun.star.sheet.addin.Analysis.getDec2Bin | 
| DECAHEX | com.sun.star.sheet.addin.Analysis.getDec2Hex | 
| DECAOCT | com.sun.star.sheet.addin.Analysis.getDec2Oct | 
| DELTA | com.sun.star.sheet.addin.Analysis.getDelta | 
| DESC | com.sun.star.sheet.addin.Analysis.getDisc | 
| MOEDADEC | com.sun.star.sheet.addin.Analysis.getDollarde | 
| MOEDAFRA | com.sun.star.sheet.addin.Analysis.getDollarfr | 
| DURAÇÃO | com.sun.star.sheet.addin.Analysis.getDuration | 
| DATAM | com.sun.star.sheet.addin.Analysis.getEdate | 
| EFETIVA | com.sun.star.sheet.addin.Analysis.getEffect | 
| FIMMÊS | com.sun.star.sheet.addin.Analysis.getEomonth | 
| FUNERRO | com.sun.star.sheet.addin.Analysis.getErf | 
| FUNERROCOMPL | com.sun.star.sheet.addin.Analysis.getErfc | 
| FATDUPLO | com.sun.star.sheet.addin.Analysis.getFactdouble | 
| VFPLANO | com.sun.star.sheet.addin.Analysis.getFvschedule | 
| MDC | com.sun.star.sheet.addin.Analysis.getGcd | 
| DEGRAU | com.sun.star.sheet.addin.Analysis.getGestep | 
| HEXABIN | com.sun.star.sheet.addin.Analysis.getHex2Bin | 
| HEXADEC | com.sun.star.sheet.addin.Analysis.getHex2Dec | 
| HEXAOCT | com.sun.star.sheet.addin.Analysis.getHex2Oct | 
| IMABS | com.sun.star.sheet.addin.Analysis.getImabs | 
| IMAGINÁRIO | com.sun.star.sheet.addin.Analysis.getImaginary | 
| IMARG | com.sun.star.sheet.addin.Analysis.getImargument | 
| IMCONJ | 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 | 
| IMCOSEC | com.sun.star.sheet.addin.Analysis.getImcsc | 
| IMCOSECH | 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 | 
| IMPOT | com.sun.star.sheet.addin.Analysis.getImpower | 
| IMPROD | 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 | 
| IMSENO | com.sun.star.sheet.addin.Analysis.getImsin | 
| IMSENH | com.sun.star.sheet.addin.Analysis.getImsinh | 
| IMRAIZ | com.sun.star.sheet.addin.Analysis.getImsqrt | 
| IMSUBTR | com.sun.star.sheet.addin.Analysis.getImsub | 
| IMSOMA | com.sun.star.sheet.addin.Analysis.getImsum | 
| IMTAN | com.sun.star.sheet.addin.Analysis.getImtan | 
| TAXAJUROS | com.sun.star.sheet.addin.Analysis.getIntrate | 
| ÉPAR | com.sun.star.sheet.addin.Analysis.getIseven | 
| ÉÍMPAR | com.sun.star.sheet.addin.Analysis.getIsodd | 
| MMC | com.sun.star.sheet.addin.Analysis.getLcm | 
| MDURAÇÃO | com.sun.star.sheet.addin.Analysis.getMduration | 
| MARRED | com.sun.star.sheet.addin.Analysis.getMround | 
| MULTINOMIAL | com.sun.star.sheet.addin.Analysis.getMultinomial | 
| DIATRABALHOTOTAL | com.sun.star.sheet.addin.Analysis.getNetworkdays | 
| NOMINAL | com.sun.star.sheet.addin.Analysis.getNominal | 
| OCTABIN | com.sun.star.sheet.addin.Analysis.getOct2Bin | 
| OCTADEC | com.sun.star.sheet.addin.Analysis.getOct2Dec | 
| OCTAHEX | com.sun.star.sheet.addin.Analysis.getOct2Hex | 
| PREÇOPRIMINC | com.sun.star.sheet.addin.Analysis.getOddfprice | 
| LUCROPRIMINC | com.sun.star.sheet.addin.Analysis.getOddfyield | 
| PREÇOÚLTINC | com.sun.star.sheet.addin.Analysis.getOddlprice | 
| LUCROÚLTINC | com.sun.star.sheet.addin.Analysis.getOddlyield | 
| PREÇO | com.sun.star.sheet.addin.Analysis.getPrice | 
| PREÇODESC | com.sun.star.sheet.addin.Analysis.getPricedisc | 
| PREÇOVENC | com.sun.star.sheet.addin.Analysis.getPricemat | 
| QUOCIENTE | com.sun.star.sheet.addin.Analysis.getQuotient | 
| ALEATÓRIOENTRE | com.sun.star.sheet.addin.Analysis.getRandbetween | 
| RECEBER | com.sun.star.sheet.addin.Analysis.getReceived | 
| SOMASEQUÊNCIA | com.sun.star.sheet.addin.Analysis.getSeriessum | 
| RAIZPI | com.sun.star.sheet.addin.Analysis.getSqrtpi | 
| OTN | com.sun.star.sheet.addin.Analysis.getTbilleq | 
| OTNVALOR | com.sun.star.sheet.addin.Analysis.getTbillprice | 
| OTNLUCRO | com.sun.star.sheet.addin.Analysis.getTbillyield | 
| NÚM.SEMANA | com.sun.star.sheet.addin.Analysis.getWeeknum | 
| DIAÚTIL | com.sun.star.sheet.addin.Analysis.getWorkday | 
| XTIR | com.sun.star.sheet.addin.Analysis.getXirr | 
| XVPL | com.sun.star.sheet.addin.Analysis.getXnpv | 
| FRAÇÃOANO | com.sun.star.sheet.addin.Analysis.getYearfrac | 
| LUCRO | com.sun.star.sheet.addin.Analysis.getYield | 
| LUCRODESC | com.sun.star.sheet.addin.Analysis.getYielddisc | 
| LUCROVENC | com.sun.star.sheet.addin.Analysis.getYieldmat | 
A tabela abaixo apresenta uma lista com todas as funções de suplemento do Calc para Datas e seus respectivos nomes de serviço UNO.
| Nome da função Calc | Nome do serviço UNO | 
|---|---|
| DIASNOMÊS | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth | 
| DIASNOANO | com.sun.star.sheet.addin.DateFunctions.getDaysInMonth | 
| MESES | com.sun.star.sheet.addin.DateFunctions.getDiffMonths | 
| SEMANAS | com.sun.star.sheet.addin.DateFunctions.getDiffWeeks | 
| ANOS | com.sun.star.sheet.addin.DateFunctions.getDiffYears | 
| ROT13 | com.sun.star.sheet.addin.DateFunctions.getRot13 | 
| SEMANASNOANO | com.sun.star.sheet.addin.DateFunctions.getWeeksInYear | 
A tabela abaixo apresenta uma lista com todas as funções de suplemento do Calc para Preços e seus respectivos nomes de serviço UNO.
| Nome da função Calc | Nome do serviço 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 |