I've asked here about the good way to do so.
Now I'm trying the following code found here, and get some unexpected errors.
I suppose I'm not using it the correct way. Any idea ?
Sub Main 
    Dim aResult 
    Dim aFunc 
    Dim oRange 
    aFunc = GetProcessServiceManager().createInstance("com.sun.star.sheet.FunctionAccess") 
    aResult = aFunc.callFunction("SUM", Array(1, 2, 3))
    ' ---- Works OK
    Print aResult 
    aResult = aFunc.callFunction("MDETERM", Array(2, 5, 8)) 
    ' ---- IllegalArgumentException
    Print aResult 
    oRange = ThisComponent.sheets(0).getcellrangebyname("B4:B6") 
    aResult = aFunc.callFunction("ZTEST", Array(oRange, 2.5, 1.0)) 
    ' ---- IllegalArgumentException
    Print aResult 
End Sub
MDETERM needs a square array.
And ZTEST works only if there are values in the range.
Sub Main 
    Dim oFunc as Object
    Dim vResult as Variant
    Dim oRange as Object
    Dim bDoZTEST as Boolean
    Dim aSubArray as Variant
    Dim vValue as Variant
    oFunc = GetProcessServiceManager().createInstance("com.sun.star.sheet.FunctionAccess") 
    vResult = oFunc.callFunction("SUM", Array(1, 2, 3))
    Print vResult 
    vResult = oFunc.callFunction("MDETERM", Array(Array(Array(2, 5, 8), Array(1, 4, 3), Array(9, 7, 6)))) 
    Print vResult 
    oRange = ThisComponent.sheets(0).getCellRangeByName("B4:B6") 
    bDoZTEST = true
    vResult = Empty
    for each aSubArray in oRange.DataArray
     for each vValue in aSubArray
      if not isNumeric(vValue) then bDoZTEST = false
     next
    next
    if bDoZTEST then vResult = oFunc.callFunction("ZTEST", Array(oRange, 2.5, 1.0)) 
    Print vResult 
End Sub
来源:https://stackoverflow.com/questions/30216466/how-to-use-libreoffice-functions-into-basic