Para salvar um intervalo selecionado no Excel (digamos um recibo) como PDF no Excel usando VBA, use a sintaxe abaixo.
O Código Genérico
Sub SaveRangeAsPDF () Faixa.ExportAsFixedFormat Tipo: = xlTypePDF, Nome do arquivo:= _ "C: \ Usuários \ nome_arquivo", Quality: = xlQualityStandard, _ IncludeDocProperties: = True, IgnorePrintAreas: = False, OpenAfterPublish: = True End Sub
O código acima é um código genérico para salvar um intervalo fixo como um documento PDF. Quando você gravar macro enquanto exporta o Excel para PDF, um código semelhante aparecerá.
Faixa:Pode ser um intervalo fixo, um intervalo dinâmico ou uma seleção. Você precisa defini-lo.
Nome do arquivo: Este é o nome totalmente qualificado do pdf. Defina-o como uma string.
O resto das variáveis pode ser deixado como está. Eu os expliquei após um exemplo.
Exemplo: Imprimir recibo do Excel como PDF usando VBA
Digamos que você precise imprimir e enviar recibos no Excel regularmente. Nesse caso, você gostaria de automatizá-lo. Você não gostaria de exportar o excel para pdf repetidamente. Se você pudesse apenas usar um botão para fazer isso, seria útil, não é?
Aqui, desenvolvi este formato de recibo. Quero imprimir / salvar / exportar como PDF usando o botão "Criar PDF".
Este recibo cobre a faixa "A2: L21". Já configurei a área de impressão.
Para salvar nesta faixa do Excel como PDF, usaremos o código VBA genérico mencionado acima para exportar planilhas do Excel para PDF. Vamos ajustar o código de acordo com nossa exigência.
Sub PrintSelectionToPDF () Dim invoiceRng As Range Dim pdfile As String 'Faixa de configuração a ser impressa Set invoiceRng = Range ("A1: L21")' nome do arquivo de configuração com um carimbo de hora. pdfile = "invoice" & "_" & Format (Now (), "yyyymmdd_hhmmss") & ".pdf" 'definindo o nome qualificado fulli. O pdf resultante será salvo onde o arquivo principal existe. pdfile = ThisWorkbook.Path & strfile invoiceRng.ExportAsFixedFormat Type: = xlTypePDF, _ Filename: = pdfile, _ Quality: = xlQualityStandard, _ IncludeDocProperties: = True, _ IgnorePrintAreas: = False, _ OpenAfterPublish End: =
Usando o código:
Copie o código acima em seu arquivo de recibo, abrindo o editor VBA (use Alt + F11). Ajuste o intervalo e o caminho do arquivo (se desejar) no código que deseja imprimir. Você pode baixar o arquivo de trabalho abaixo.
Salvar intervalo do Excel como PDF usando VBA
Explicação:
Dim invoiceRng As Range Dim pdfile As String
O código é simples. Primeiro, criamos duas variáveis. "InvoiceRng as Range" para o intervalo / folha que queremos salvar como pdf. strFile para o nome de arquivo totalmente qualificado do PDF resultante.
Defina invoiceRng = Range ("A1: L21")
Como nosso intervalo de impressão é fixo, definimos o intervalo da fatura como Intervalo ("A1: L21").
pdfile = "invoice" & "_" & Format (Now (), "yyyymmdd_hhmmss") & ".pdf" pdfile = ThisWorkbook.Path & strfile
Nas duas linhas acima, primeiro nomeamos o arquivo com um carimbo de data / hora e depois adicionamos ao caminho do arquivo principal. Como resultado, o pdfile contém o nome totalmente qualificado do arquivo pdf resultante.
invoiceRng.ExportAsFixedFormat _ Type: = xlTypePDF, _ Filename: = pdfile, _ Quality: = xlQualityStandard, _ IncludeDocProperties: = True, _ IgnorePrintAreas: = True, _ OpenAfterPublish: = False
Finalmente, usamos o método ExpoortAsFixedFormat da classe Range para imprimir o intervalo definido do Excel como PDF. Definimos o tipo como xlTypePDF. Outra opção é xlTypeXPS, que salvará o intervalo selecionado como arquivo XPS.
Definimos o nome do arquivo como pdfile, que contém a string do nome totalmente qualificado do arquivo pdf. Você pode escrever um texto codificado aqui ou personalizá-lo de acordo com sua necessidade.
Em seguida, definimos a qualidade do pdfile como xlQualityStandard. Temos outra escolha como xlQualityMinimum.
Em seguida, definimos IncludeDocProperties como True. Isso significa que o PDF resultante terá as propriedades de um documento.
Em seguida, definimos IgnorePrintAreas como True. Isso significa que irá ignorar qualquer área de impressão já definida.
Por fim, definimos OpenAfterPublish como False. Isso significa que o arquivo que você criou não será aberto automaticamente. Defini como falso porque crio centenas de arquivos usando um loop e não quero que eles abram. Se você deseja abrir o arquivo após criar usando o Excel, defina-o como True.
Uso da faixa selecionada de impressão como pdf
Um uso básico é imprimir o intervalo selecionado apenas clicando em um botão. Mas o melhor uso é usá-lo em um loop onde você precisa criar vários recibos para clientes diferentes. Crie um sub para preencher os dados e, em seguida, use este código para imprimir o intervalo selecionado em um loop.
Então sim pessoal, é assim que você pode salvar o intervalo selecionado como pdf. Espero que tenha sido útil para você. Se você ainda tiver alguma dúvida ou consulta em relação à impressão em excel usando VBA, pergunte na seção de comentários abaixo.
Imprima várias seleções em uma folha usando VBA no Microsoft Excel | Selecione vários intervalos e imprima cada intervalo em uma folha diferente usando VBA.
Imprimir todas as pastas de trabalho em uma pasta usando o VBA no Microsoft Excel | Use este código VBA para imprimir e salvar cada pasta de trabalho do Excel em uma pasta usando.
Artigos populares:
Divida a planilha do Excel em vários arquivos com base na coluna usando o VBA | Este código VBA divide a planilha do Excel com base em valores exclusivos em uma coluna especificada. Baixe o arquivo de trabalho.
Desativar mensagens de aviso usando VBA no Microsoft Excel 2016 | Para desligar as mensagens de aviso que interrompem o código VBA em execução, usamos a classe Application.
Adicionar e salvar nova pasta de trabalho usando VBA no Microsoft Excel 2016 | Para adicionar e salvar pastas de trabalho usando o VBA, usamos a classe Workbooks. Workbooks.Add adiciona uma nova pasta de trabalho facilmente, no entanto …