Ajuda do LibreOffice 7.2
Instancia um serviço Uno através do ProcessServiceManager.
oService = CreateUnoService( Uno service name )
Para obter uma lista de serviços disponíveis, acesse: http://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star.html
Chamar funções do Calc no Basic:
REM código abaixo não funciona para funções de suplemento, que tem um procedimento de chamada diferente.
Function MyVlook(item, InRange As Object, FromCol As Integer)
Dim oService As Object
oService = createUnoService("com.sun.star.sheet.FunctionAccess")
REM Sempre invoque as funções com seu nome em inglês
MyVlook = oService.callFunction("VLOOKUP",Array(item, InRange, FromCol, True))
End Function
oIntrospection = CreateUnoService( "com.sun.star.beans.Introspection" )
O código a seguir usa um serviço para abrir um diálogo de abertura de arquivo:
Sub Main
fName = FileOpenDialog ("Selecione um arquivo")
Print "arquivo selecionado: "+fName
End Sub
Function FileOpenDialog(title As String) As String
res = com.sun.star.ui.dialogs.ExecutableDialogResults
filepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
filepicker.Title = title
If res.OK = filepicker.execute() Then
files = filepicker.getSelectedFiles()
FileOpenDialog=files(0)
EndIf
End Function