Pomoc LibreOfficeDev 25.8
Tworzy instancję usługi Uno z ProcessServiceManager.
CreateUnoService(serviceName As String) As Object
Listę dostępnych usług można znaleźć na stronie referencyjnej modułu com::sun::star.
Poniższy przykład tworzy funkcję FileExists, która używa usługi com.sun.star.ucb.SimpleFileAccess do sprawdzenia, czy dana ścieżka jest istniejącym plikiem.
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
Usługi UNO mają obszerną dokumentację online na stronie api.libreoffice.org. Odwiedź stronę referencyjną usługi SimpleFileAccess, aby dowiedzieć się więcej o metodach zapewnianych przez usługę użytą w przykładzie powyżej.
Poniższy kod wykorzystuje usługę com.sun.star.ui.dialogs.FilePicker w celu wyświetlenia okna dialogowego otwierania pliku:
Sub Main
fName = FileOpenDialog ("Wybierz plik")
Print "wybrany plik: "+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")
With filepicker
.Title = title
.MultiSelectionMode = True
.appendFilter("Calc docs","*.ods;*.csv;*.123")
.appendFilter("Writer or Base docs","*.odt;*.odb")
.appendFilter("All files","*.*")
If res.OK = .execute() Then
files = .getSelectedFiles()
FileOpenDialog=files(0)
EndIf
End With
End Function ' FileOpenDialog