Excel VBA pro tisk jako PDF a uložení s automatickým názvem souboru

  • Sdílet Toto
Hugh West

Vývoz má své výhody Excel tabulky jako PDF dokumentu. Změnou souboru na formát PDF jej budeme moci vytisknout a sdílet s různými profesními kontakty. PDF je důvěryhodný standard pro export dokumentů, které cítíte potřebu sdílet s ostatními nebo zveřejnit. V tomto článku si ukážeme několik příkladů použití VBA pro tisk jako PDF a uložení s automatickým názvem souboru.

Stáhnout cvičebnici

Můžete si stáhnout pracovní sešit a procvičovat s nimi.

VBA Tisk do PDF.xlsm

9 příkladů aplikace Excel VBA pro tisk jako PDF a ukládání s automatickým názvem souboru v aplikaci Excel

Soubor aplikace Excel můžeme snadno vytisknout jako PDF a uložit jej s automatickým názvem souboru pomocí panelu nástrojů aplikace Excel. Jednodušší by však bylo pomocí Excel VBA Potřebujeme jen VBA kódu a spustit je. K dokončení úkolu nepotřebujeme tolik kliknutí a šetří to náš čas.

Visual Basic pro aplikace ( VBA ) je programovací model a izolovaný program, se kterým se nejčastěji setkáváme v. Microsoft Office Jedná se o analytický nástroj, který je často k dispozici jako Doplňky aplikace Excel , který optimalizuje manuální operace, jako jsou monotónní, časově náročné práce. Může také generovat CSV Podívejme se tedy na několik příkladů tisku souboru Excel jako PDF s automatickým názvem souboru.

1. Tisk sešitu do PDF & Automatické uložení názvu souboru v aplikaci Excel

Předpokládejme, že chceme vytisknout celý sešit a uložit název souboru tak, jak jsme jej uvedli v našem kódu. Nyní předpokládejme, že chceme uložit soubor PDF do našeho počítače. Místní disk (E:) . Jak můžeme vidět na obrázku níže, umístění neobsahuje žádné soubory pdf. Po spuštění kódu VBA budeme moci zobrazit náš požadovaný PDF v tomto umístění v našem počítači.

S Excel VBA , mohou uživatelé snadno používat kód, který se chová jako nabídky Excelu z pásu karet. Chcete-li použít kód VBA kód pro tisk pdf a uložení s automatickým názvem souboru, postupujme podle tohoto postupu.

KROKY:

  • Nejprve přejděte na Vývojář z pásu karet.
  • Za druhé, z Kód klikněte na Visual Basic otevřít Editor jazyka Visual Basic . Nebo stiskněte Alt + F11 otevřít Editor jazyka Visual Basic .

  • Místo toho můžete na pracovní list kliknout pravým tlačítkem myši a přejít na položku Zobrazit kód . Tím se také dostanete na Editor jazyka Visual Basic .

  • Zobrazí se v Editor jazyka Visual Basic kde napíšeme kódy pro vytvoření tabulky z rozsahu.
  • Za třetí klikněte na Modul z Vložte v rozevírací nabídce.

  • Tím se vytvoří Modul v sešitě.
  • A zkopírujte a vložte VBA níže uvedený kód.

Kód VBA:

 Sub Print_Workbook() Dim loc As String loc = "E:\Workbook.pdf" ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Spusťte kód stisknutím tlačítka F5 na klávesnici.

  • Nakonec můžete vidět, že název souboru PDF, Pracovní sešit se nyní nachází na této cestě ve vašem počítači. To znamená, že název souboru je automaticky uložen.

  • A nakonec, pokud se vrátíte do sešitu, uvidíte několik přerušovaných čar. To proto, že soubor je nyní připraven k tisku.

Vysvětlení kódu VBA

 Sub Print_Workbook() 

Sub je část kódu, která slouží ke zpracování práce v kódu, ale nebude vracet žádnou hodnotu. Je také známá jako podprocedura. Naši proceduru tedy pojmenujeme Print_Workbook() .

 loc = "E:\Workbook.pdf" 

Tento řádek je určen pro umístění a název souboru pdf. Zde uložíme náš soubor do adresáře E: na našem počítači a pojmenujte soubor Pracovní sešit .

 ActiveWorkbook.ExportAsFixedFormat Typ:=xlTypePDF, název souboru:=loc 

Tento řádek kódu slouží k exportu souboru Excel do formátu PDF a jeho přípravě k tisku.

 End Sub 

Tím se postup ukončí.

Přečtěte si více: Export aplikace Excel do PDF s hypertextovými odkazy (2 rychlé metody)

2. Automatické uložení aktivního pracovního listu do formátu PDF

Podívejme se na další příklad tisku aktivního listu do formátu pdf a automatického uložení názvu souboru pomocí funkce Excel VBA .

KROKY:

  • Nejprve přejděte do Rozvíjejte r na pásu karet.
  • Za druhé klikněte na Visual Basic otevřít Editor jazyka Visual Basic .
  • Další způsob, jak otevřít Editor jazyka Visual Basic je jednoduše stisknout Alt + F11 .
  • Nebo klikněte pravým tlačítkem myši na list a vyberte možnost Zobrazit kód .
  • Dále přejděte na Vložte a vyberte Modul z rozevírací nabídky.
  • Tím se otevře okno Visual Basic.
  • Poté zkopírujte a vložte Kód VBA níže.

Kód VBA:

 Sub Print_Sheet() Dim loc As String loc = "E:\Worksheet.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Dále stiskněte tlačítko Klávesa F5 nebo klikněte na Run Sub spustit kód.

  • Podobně jako v předchozím příkladu se soubor uloží jako PDF s automatickým názvem souboru.

Pokud čtete example1's vysvětlení kódu, pochopíte to i vy.

Přečtěte si více: Makro aplikace Excel: Uložit jako PDF s datem v názvu souboru (4 vhodné příklady)

3. Tisk souboru PDF z aplikace Excel pomocí VBA v rozsahu

Podívejme se na další příklad využití nástroje Excel VBA k automatickému tisku aktivního listu do formátu pdf a uložení názvu souboru.

KROKY:

  • Chcete-li začít, klikněte na Vývojář na pásu karet.
  • Za druhé, spusťte Editor jazyka Visual Basic kliknutím na Visual Basic .
  • Případně můžete přistupovat k Editor jazyka Visual Basic stisknutím Alt + F11 .
  • Nebo, klikněte pravým tlačítkem myši na na listu a vyberte Zobrazit kód z nabídky.
  • Dále vyberte Modul z rozevíracího seznamu v části Vložte .
  • Zobrazí se okno Visual Basic.
  • Napište tam kód.

Kód VBA:

 Sub PrntPDF() ActiveWindow.SelectedSheets.PrintOut Kopie:=1, _ Collate:=True, ActivePrinter:="Adobe PDF" Dim fnam As String fnam = Range("B4").Value End Sub 
  • Nakonec stiskněte tlačítko Klávesa F5 ke spuštění kódu.

  • Poté uvidíte, že do daného umístění v počítači byl přidán soubor PDF s názvem Sešit. Díky tomu se název souboru automaticky zachová.

Přečtěte si více: Tisk rozsahu do PDF pomocí VBA v aplikaci Excel (5 nejjednodušších příkladů)

4. Excel VBA pro smyčku napříč vybraným listem a tisk PDF

Podívejme se na další způsob tisku do PDF a automatického uložení názvu souboru.

KROKY:

  • Chcete-li začít, otevřete pás karet a vyberte možnost Vývojář možnost.
  • Pak, pro přístup k Editor jazyka Visual Basic , klikněte na Visual Basic .
  • Stisknutí Alt + F11 vyvolá také Editor jazyka Visual Basic .
  • Případně, klikněte pravým tlačítkem myši na listu a vyberte možnost Zobrazit kód ze zobrazené nabídky.
  • Nyní z Vložte v rozevíracím seznamu vyberte možnost Modul .
  • Pak zkopírujte a vložte VBA kód, který následuje.

Kód VBA:

 Sub PrntPDF1() Dim wrksht As Worksheet Dim sht As Variant Set sht = ActiveWindow.SelectedSheets For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht sht.Select End Sub 
  • Spusťte kód stisknutím tlačítka F5 klíč.

  • Nakonec uvidíte, že do této oblasti v počítači byl nahrán soubor PDF sešitu. V důsledku toho se automaticky zachová název souboru.

Tím se soubor uloží jako číslo listu sešitu.

Vysvětlení kódu VBA

 For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht 

Tento řádek kódů smyčky for slouží k exportu souboru excel jako pdf a k tisku souboru.

Přečtěte si více: Excel VBA: ExportAsFixedFormat PDF s přizpůsobením stránce (3 příklady)

5. Tisk do PDF a uložení názvu souboru instinktivně v aplikaci Excel

Nyní se podívejte na další metodu Excel VBA pro ukládání souborů Excel do formátu pdf a automatický systém pojmenování souboru.

KROKY:

  • Chcete-li začít, otevřete pás karet a vyberte Vývojář z rozevírací nabídky.
  • Pak vyberte Visual Basic otevřít Editor jazyka Visual Basic .
  • Na stránkách Editor jazyka Visual Basic lze také vyvolat stisknutím tlačítka Alt + F11 .
  • Případně můžete klikněte pravým tlačítkem myši na listu a vyberte Zobrazit kód z rozbalovací nabídky.
  • Poté vyberte Modul z Vložte rozevírací nabídka.
  • Dále zkopírujte a vložte následující kód VBA.

Kód VBA:

 Sub PrntPDF2() Dim loc As String loc = "E:\Sheet6.pdf" ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ filename:=loc, _ OpenAfterPublish:=False, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ Quality:=xlQualityStandard, _ From:=1, To:=2 End Sub 
  • Nakonec spusťte kód stisknutím tlačítka F5 na klávesnici a uvidíte výsledek.

  • Následně uvidíte, že Cvičebnice PDF soubor již byl uložen do tohoto umístění v počítači. V důsledku toho se název souboru automaticky zachová.

Podobně jako v předchozím příkladu se i zde uloží soubor pdf jako číslo listu.

Vysvětlení kódu VBA

 ActiveSheet.ExportAsFixedFormat Typ:=xlTypePDF, název souboru:=loc, OpenAfterPublish:=False, IncludeDocProperties:=True, IgnorePrintAreas:=False, Quality:=xlQualityStandard, From:=1, To:=2 

Blok kódu slouží k tisku a uložení souboru Excel jako pdf.

Přečtěte si více: Tisk do PDF a e-mail pomocí VBA v aplikaci Excel (2 užitečné případy)

6. Funkce VBA pro automatický tisk PDF a uložení názvu souboru

Prozkoumejme další způsob tisku do PDF a automatického uložení názvu souboru v Excelu VBA. V tomto příkladu použijeme funkci a uložíme soubor do PDF. Použijeme také příkaz Msgbox aby nám zobrazil zprávu, zda je soubor uložen, nebo ne.

KROKY:

  • Na začátku přejděte na Vývojář karta> Visual Basic > Vložte > Modul .
  • Nebo, kliknutí pravým tlačítkem myši na pracovním listu se otevře okno. V něm přejděte na položku Zobrazit kód .
  • Tím se dostanete na Editor jazyka Visual Basic pole, kam můžeme zapsat Makra VBA .
  • Na druhou stranu stisknutí Alt + F11 otevře také Editor jazyka Visual Basic .
  • Poté zadejte VBA kód.

Kód VBA:

 Sub PrntPDF3() Dim wrks As Worksheet Dim wrkb As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim myFile As Variant Dim l As Long On Error GoTo errHandler Set wrkb = ActiveWorkbook Set wrks = ActiveSheet sloc = wrkb.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc &; "\" snam = wrks.Range("A1").Value & " Print " &wrks.Range("A2").Value & " PDF " & wrks.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf If PrintFile(slocf) Then l = MsgBox(vbQuestion + vbYesNo, "File Exists") If l vbYes Then myFile = Application.GetSaveAsFilename(InitialFileName:=slocf, FileFilter:="PDF Files (*.pdf), *.pdf", _ Title:="Save File Name") If myFile "False" Then slocf = myFile Else GoTo exitHandler End IfEnd If End If wrks.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler End Sub Function PrintFile(rsFullPath As String) As Boolean PrintFile =CBool(Len(Dir$(rsFullPath))> 0) Konec funkce 
  • Spusťte kód a podívejte se na výsledek stisknutím tlačítka Klávesa F5 .

  • Zobrazí se v Msgbox a ujistěte se, že soubor PDF je nyní připraven k tisku.

  • Podobně jako dříve si všimnete, že soubor PDF sešitu byl již uložen do tohoto umístění v počítači. V důsledku toho je název souboru ve výchozím nastavení zachován. Jak jsme nastavili název souboru. Vytisknout PDF , uložil název souboru Tisk PDF.

Pokud se podíváte na vysvětlení předchozího kódu, správně pochopíte řádky kódu. Kód nemusíte měnit, pouze změňte rozsahy podle svých preferencí. Kód můžete zkopírovat a použít pro své pracovní účely.

Přečtěte si více: Makro aplikace Excel pro uložení do formátu PDF s názvem souboru z hodnoty buňky (2 příklady)

7. Kód Excel VBA pro automatický tisk do PDF a uložení názvu souboru

Podívejme se na další metodu Excel VBA pro tisk do PDF a automatické ukládání názvu souboru.

KROKY:

  • Chcete-li začít, přejděte do Vývojář na pásu karet.
  • Za druhé v části Kód vyberte Visual Basic spustit Editor jazyka Visual Basic Otevření Editor jazyka Visual Basic , klikněte Alt + F11 .
  • Můžete také kliknout pravým tlačítkem myši na pracovní list a vybrat možnost Zobrazit kód . Tím se dostanete do Editor jazyka Visual Basic také.
  • Tato informace se zobrazí v Editor jazyka Visual Basic , kde napíšeme kód pro generování tabulky z rozsahu.
  • Zatřetí v rozevírací nabídce Vložit vyberte možnost Modul .
  • A zkopírujte a vložte VBA níže uvedený kód.

Kód VBA:

 Sub PrintPDF4() Dim wrksht As Worksheet Dim wrkbk As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim file As Variant On Error GoTo errHandler Set wrkbk = ActiveWorkbook Set wrksht = ActiveSheet sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = slocamp &; "\" snam = wrksht.Range("A1").Value & " - " &wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" ResumeexitHandler Konec Sub 
  • Poté spusťte kód kliknutím na tlačítko RubSub nebo stisknutím tlačítka F5 klávesová zkratka.

  • Zejména pak Msgbox se objeví.

  • Soubor se uloží jako PDF se stejným automatickým názvem jako v předchozím příkladu.

Vysvětlení kódu VBA

 sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & " - " & wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value 

Ty slouží k získání aktivní složky sešitu, pokud je sešit uložen.

 sf = snam & ".pdf" slocf = sloc & sf 

Tím se vytvoří výchozí název pro ukládání souborů.

 wrksht.ExportAsFixedFormat Typ:=xlTypePDF, název souboru:=slocf, Kvalita:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 

Tento blok pouze exportuje soubor excelu do formátu PDF v aktuální složce.

 MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler 

To nám umožní zobrazit potvrzovací zprávu s informacemi o souboru v aplikaci Microsoft Excel.

Přečtěte si více: Tisk do PDF pomocí tlačítka makra v aplikaci Excel (5 variant maker)

8. Tisk konkrétního listu aplikace Excel s automatickým názvem souboru

Podívejme se na jinou metodu Excel VBA pro tisk do PDF a automatické ukládání názvu souboru.

KROKY:

  • V první řadě vyberte Vývojář z pásu karet.
  • Za druhé, podle Kód vyberte kategorii Visual Basic spustit Editor jazyka Visual Basic . Případně stiskněte Alt + F11 spustit Editor jazyka Visual Basic .
  • Místo toho klikněte pravým tlačítkem myši na pracovní list a vyberte možnost Zobrazit kód .
  • Zobrazí se v Editor jazyka Visual Basic , kde napíšeme náš kód pro generování tabulky z rozsahu.
  • Za třetí vyberte Modul z rozevírací nabídky Vložit.
  • Dále zkopírujte a vložte Kód VBA níže.

Kód VBA:

 Sub PrintPDF5() Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") rng.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Dále spusťte kód kliknutím na tlačítko RubSub nebo pomocí tlačítka F5 klávesová zkratka.

  • Tento soubor se uloží jako PDF se stejným názvem jako v předchozím příkladu.

Vysvětlení kódu VBA

 Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") 

Tyto bloky kódů slouží k vytváření a přiřazování proměnných.

 rng.ExportAsFixedFormat Typ:=xlTypePDF, _ název souboru:=loc 

Tím se uloží řada dat souboru ve formátu PDF.

Přečtěte si více: Jak převést Excel do PDF bez ztráty formátování (5 efektivních způsobů)

9. Automatické uložení názvu souboru při tisku do PDF v aplikaci Excel VBA

Podívejme se na další metodu Excel VBA pro tisk do PDF a automatické ukládání názvu souboru.

KROKY:

  • Na začátku vyberte Vývojář z pásu karet.
  • Za druhé, vyberte Visual Basic z Kód otevřít oblast Editor jazyka Visual Basic . klikněte Alt + F11 spustit Editor jazyka Visual Basic .
  • Můžete také kliknout pravým tlačítkem myši na pracovní list a vybrat možnost Zobrazit kód . Tím se také dostanete do Editor jazyka Visual Basic .
  • Nyní můžeme vidět Editor jazyka Visual Basic , kde napíšeme kód pro vytvoření tabulky z rozsahu.
  • Dále vyberte Modul z Vložte v rozevírací nabídce.
  • Potom zkopírujte a vložte VBA kód, který následuje.

Kód VBA:

 Sub Prnt_PDF() Call Automatic_Name End Sub Function Automatic_Name() As Boolean ' Zkopíruje listy do nového PDF souboru pro odeslání e-mailem Dim sht As String, file As String, loc As String Dim s As String Application.ScreenUpdating = False sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf" On Error Resume NextActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Saved as .pdf file: " & vbCrLf & vbCrLf & SvAs & _ "Review the .pdf document."Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save as PDF." Automatioc_Name = False EndMacro: End Function 
  • Kód se pak spustí kliknutím na tlačítko RubSub nebo pomocí tlačítka F5 klávesová zkratka.

Vysvětlení kódu VBA

 sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf" 

Pro získání souboru jako pdf a uložení názvu pdf.

 On Error Resume Next ActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 

Tím se pouze nastaví kvalita tisku.

 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Saved as .pdf file: " & vbCrLf & vbCrLf & SvAs & _ "Review the .pdf document." Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save as.PDF." Automatioc_Name = False 

Tyto řádky budou uživatele instruovat, jak soubor odeslat, aby jej vytiskl jako pdf.

Přečtěte si více: Jak uložit Excel jako PDF bez odříznutí (4 vhodné způsoby)

Závěr

Výše uvedené metody vám pomohou udělat tuto práci z Tisk do PDF a ukládání automatického názvu souboru v aplikaci Excel VBA . doufám, že vám to pomůže! Pokud máte nějaké dotazy, návrhy nebo zpětnou vazbu, dejte nám prosím vědět v sekci komentářů. Nebo se můžete podívat na naše další články v sekci ExcelWIKI.com blog!

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.