Gerar pdf com macro

Boia tarde

Preciso de uma macro que gere em PDF somente a planilha que estou. Encontrei aqui no forum uma planilha do Gilberto parecida mas não estou conseguindo adaptar a minha.
Preciso que gere pdf somente da plan que estou. Alguem poderia por favo rme ajudar?

Sub GenerarPDF 
Dim document As Object 
Dim dispatcher As Object
Dim numFactura As String 
Dim CarpetaNombrePDF As String

document   = ThisComponent.CurrentController.Frame
dispatcher = CreateUNOService("com.sun.star.frame.DispatchHelper")

Dim aSaltarA(0) As New com.sun.star.beans.PropertyValue
aSaltarA(0).Name = "ToPoint"
aSaltarA(0).Value = "ImprimirFactura"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, aSaltarA())
dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())

aSaltarA(0).Value = "CodCliente"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, aSaltarA())

numFactura = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("NumFactura").getString()
CarpetaNombrePDF = GuardarComo( "Factura " & numFactura )

If CarpetaNombrePDF > "" Then

    Dim args2(1) As New com.sun.star.beans.PropertyValue
    args2(0).Name = "URL"
    args2(0).Value = CarpetaNombrePDF
    args2(1).Name = "FilterName"
    args2(1).Value = "calc_pdf_Export"

    dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args2())

EndIf

End Sub

@Eliane,

Esta fiz com o gravador de macro: é gravado todos os parâmetros para conversão.

Da para melhorar, depende de sua necessidade:

Observações: REM(1) coloque a area nomeada, e REM(2) Diretório de salvamento e arquivo.

sub ExportarPDF
'----------------------------------------------------------------------
dim document, dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "AImprimir"         REM (1) <= área nomeada a imprimir.
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "URL"
args2(0).Value = "file:///C:/Users/GILBERTO/Desktop/Sem%20t%C3%ADtulo%202.pdf" REM (2) <= Diretório/arquivo.
args2(1).Name = "FilterName"
args2(1).Value = "calc_pdf_Export"
args2(2).Name = "FilterData"
args2(2).Value = Array(Array("UseLosslessCompression",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ViewPDFAfterExport",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportPlaceholders",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FormsType",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportLinksRelativeFsys",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Watermark",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PreparedPermissionPassword",0,Array(),com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Selection",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureLocation",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureReason",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureContactInfo",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignaturePassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureCertificate",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SignatureTSA",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseReferenceXObject",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE))
dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args2())
end Sub

ATENÇÂO:: Para dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Grato.

Caso a resposta atendeu sua necessidade, por gentileza, click na bolinha Descrição da imagem a esquerda da resposta, para finalizar a pergunta.

@Eliane, comentou:

Gilberto, está gerando o PDF de todas as Plan. No arquivo tem 8 planilhas e so posso gerar o pdf da que está ativa, ou seja, so da que estou mexendo e não de todas elas.
Agradeço muitissimo sua ajuda

Para garantir a impressão da área certa, nomeia e use na macro.

Nomear como assim? Eu nomeei a area de impressão da coluna A:O e coloquei esss nome dado no REM1:
Exemplo: args1(0).Value = “gerarpdf”

É isso?

Quando seleciona esta área e aciona a previa da impressão, esta certo ?

@Eliane, tem esta também

Sub ExportarParaPDF()

	Dim pdfName As String
	Dim ArqName as String
	Dim Endereco As String

	oDoc = ThisComponent
	oLancamento = oDoc.Sheets.getByName("Lancamento")
	oSheet1 = oDoc.Sheets.getByName("Sheet1")

        'endereço onde quer salvar o arquivo pdf	
        Endereco = oSheet1.getCellRangeByName("B4").String
        
        'nome do arquivo
	ArqName = oSheet1.getCellRangeByName("C2").String

        'concatenar o nome do arquivo + extensão pdf
	pdfName = ArqName & ".pdf"

	' change the path below as per your needs
        
        'converte o endereço em link e concatenar o nome do arquivo + extensão
	path =ConvertToUrl(Endereco & pdfName)

		Dim document as object
		Dim dispatcher as object
		document = ThisComponent.CurrentController.Frame
		dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

		' This part makes sure only the first page gets printed
		Dim argsF(1) as new com.sun.star.beans.PropertyValue
		argsF(0).Name = "PageRange"
		argsF(0).Value = "1"

		' This part sets filename and references the properties above
               
                'args1(2) = o numero 2 representa a posição da sheet no arquivo		
                Dim args1(2) as new com.sun.star.beans.PropertyValue 
		args1(0).Name = "URL"
		args1(0).Value = path
		args1(1).Name = "FilterName"
		args1(1).Value = "calc_pdf_Export"
		args1(2).name = "FilterData"
		args1(2).value = argsF()

		dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())

End Sub

Conrado muitissimo obrigada.
Estou tentando adaptar ao meu arquivo.

Olá Eliane,

Eu tenho usado a Macro que vai no anexo. Criei também um menu na barra de tarefas para acessar a macro toda a vez que preciso imprimir o texto. No meu caso, apenas uma planilha (aba) em específico do grupo de planilhas será impressa, então defini o intervalo que deve ser impresso com o nome RESUMO, que também fica na Aba de mesmo nome. Assim, quando aciono a macro, o CALC vai selecionar aquele bloco e gerar o arquivo em PDF, que será gravado na mesma pasta que estarei trabalhando, com o nome da Aba RESUMO.PDF.
Basta copiar o texto e incomporá-lo às suas macros.

Exporta_Para_pdf.odt

Boa tarde Jedison,

tem como vc me ajudar tenho uma mala-direta em odt, ela gera outros arquiv., depois de gerar esses arquivos tenho que gerar os pdf’s, você poderia me ajudar para que essa mala-direta gerasse os pdf simutaniamente?