Добрый день!
Не следует в макросе для LO Basic использовать объекты из объектной модели Excel.
Следующий макрос выводит в файл pdf все листы документа, кроме второго. Файл pdf формируется в том же каталоге и с тем же именем, что и исходный документ Calc.
Sub TestPdf
Dim oDoc As Object
Dim dispatcher As Object
Dim fileSaveName As String, i As Long
oDoc=ThisComponent
dispatcher = CreateUnoService("com.sun.star.frame.DispatchHelper")
fileSaveName=oDoc.Url
If fileSaveName="" Then
MsgBox "Документ еще не сохранялся"
Exit Sub
End If
' убираем расширение
i=Len(fileSaveName)
Do While i>1
If Mid(fileSaveName,i,1)="." Then
fileSaveName=mid(fileSaveName, 1, i-1)
Exit Do
Else
i=i-1
End If
Loop
Dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = fileSaveName & ".pdf" '
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
With oDoc
' перед выводом скрываем 2-й лист, после вывода открываем
.sheets(1).IsVisible=False
dispatcher.executeDispatch(.CurrentController.Frame, ".uno:ExportDirectToPDF", "", 0, args1())
.sheets(1).IsVisible=True
End With
End Sub