Ajuda do Collabora Office 24.04
Instanciar um serviço de Uno com o ProcessServiceManager.
CreateUnoService(serviceName As String) As Object
Para uma lista de serviços disponíveis, consulte a página de referência: com::sun::star Module.
O exemplo abaixo cria a função FileExists que utiliza o serviço com.sun.star.ucb.SimpleFileAccess para testar se um caminho informado é um arquivo existente.
Function FileExists(sPath as String) As Boolean
Dim svcSFA As Object
Set svcSFA = CreateUnoService("com.sun.star.ucb.SimpleFileAccess")
Dim bExists As Boolean : bExists = svcSFA.exists(sPath)
Dim bIsFolder As Boolean : bIsFolder = svcSFA.IsFolder(sPath)
FileExists = bExists And Not bIsFolder
End Function ' FileExists
Os serviços UNO têm uma extensa documentação online no website api.libreoffice.org. Acesse a página de referência para aprender mais sobre os métodos fornecidos pelo serviço utilizado no exemplo acima: SimpleFileAccess Service.
O seguinte código utiliza o serviço com.sun.star.ui.dialogs.FilePicker para mostrar uma caixa de diálogo de abrir 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 ' Main