Tengo esta macro, que funciona perfectamente para un área (1 página)
Sub ExportarPdf1
Dim document as object
Dim dispatcher as object
Dim PlanImpressao As Object
IrPara "NomeArquivoPDF" : Dim NomeArq As String
NomeArq = ThisComponent.getCurrentSelection().getString()
IrPara "NomeDiretorioPDF" : Dim NomeDir As String
NomeDir = ThisComponent.getCurrentSelection().getString()
DirPasta = NomeDir & "\" & NomeArq & ".pdf"
'=============================================================
PlanImpressao = ThisComponent.Sheets.GetByName("CIs")
intervaloimpressao = PlanImpressao.GetCellRangeByName("B6:T63")
dim aFilterData(0) as new com.sun.star.beans.PropertyValue
aFilterData(0).Name = "Selection"
aFilterData(0).Value = intervaloimpressao
'=============================================================
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = ConvertToURL( DirPasta )
args1(1).Name = "FilterData" : args1(1).Value = aFilterData()
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:ExportDirectToPDF", "", 0, args1())
End Sub
Y este es un SubMacro que el primero usa:
Sub IrPara ( X As String )
'O############################################################################O
dim args1(0) as new com.sun.star.beans.PropertyValue : args1(0).Name = "ToPoint" : args1(0).Value = X
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:GoToCell", "", 0, args1())
End Sub
Mi problema es que quiero guardar un archivo en PDF pero tiene dos páginas de áreas diferentes, así que reemplacé parte de la macro, líneas entre los guiones, para definir un área y agregar la segunda:
Sub ExportarPdf2
Dim document as object
Dim dispatcher as object
Dim PlanImpressao As Object
IrPara "NomeArquivoPDF" : Dim NomeArq As String
NomeArq = ThisComponent.getCurrentSelection().getString()
IrPara "NomeDiretorioPDF" : Dim NomeDir As String
NomeDir = ThisComponent.getCurrentSelection().getString()
DirPasta = NomeDir & "\" & NomeArq & ".pdf"
'=============================================================
IrPara "PrintCI0" : Dim NomeArea As String 'célula com nome de área variável
NomeArea = ThisComponent.getCurrentSelection().getString()
IrPara NomeArea
Execute "DefinePrintArea"
IrPara "PrintCI3"
Execute "AddPrintArea"
'=============================================================
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = ConvertToURL( DirPasta )
args1(1).Name = "FilterData" : args1(1).Value = aFilterData()
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:ExportDirectToPDF", "", 0, args1())
End Sub
Y este es un SubMacro que, desde arriba, usa:
Sub Execute ( oQue$ )
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:" & oQue & "", "", 0, Array())
End Sub
Sin embargo, no funciona, la generación del archivo ocurre con todas las hojas de cálculo del archivo. ¿A dónde me estoy yendo mal?
El nombre de la primera área es variable y se toma de la celda PrintCI0