Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-soubory » tisk-do-pdf-excel-vba

Uložit (Tisk) do *.pdf - Excel VBA makro

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

... jak automaticky ukládat (tisknout) excelovské sešity do pdf ve VBA Microsoft Excel ...

Doplněno: 5.6.2013 - na základě dotazů.

Úvod

Excel VBA logo

Máte-li potřebu z Excelu exportovat výsledky vaší práce, ale nechcete použít originální soubor (v *.xls, *.xlsx předávat výpočty) ani používat tisk na papír (šetříte lesy a vaší kapsu). Můžete využít export (ukládání, tisk) do formátu *.pdf.

Pro export vyžijeme v Excelu VBA makro. (příklady jsou pro Excel 2007 a Excel 2010, které mají tutu možnost integrovaou) .

Poznámka: Pokud máte Excel 2007, musíte si podporu pro tisk do *.pdf zdarma nainstalovat z webu Microsoftu.

Google nachází složité postupy tisku přes Adobe Reader nebo externí pdf tiskárnu, u čehož vidím nevýhodu v nutnosti instalovat další program (mnohdy placený). Proto doporučuji využít přímo samotný Microsoft Excel (2007 a vyšší) .

Rychlý obsah článku:

Pro export (uložení, tisk) využijeme ExportAsFixedFormat. V článku se dozvíte:

  • Syntaxe - ExportAsFixedFormat
  • Export (Tisk) aktivního listu - pdf
  • Export (Tisk) z více listů (vybraných)
  • Export (tisk) celého sešitu
  • Změna kvality
  • Ne/zobrazovat exportované pdf
  • Dynamické jméno souboru (buňky, datum)

Syntaxe - ExportAsFixedFormat

Jak vypadá syntaxe ExportAsFixedFormat

ExportAsFixedFormat(Type, Filename, Quality, IncludeDocProperties, IgnorePrintAreas, From, To, OpenAfterPublish, FixedFormatExtClassPtr)

Popis:

  • Type - povinné - typ exportovaného dokumentu (xlTypePDF nebo xlTypeXPS)
  • Filename - volitelné - jméno pod kterým se ukládá
  • Quality - volitelné - kvalita dokumentu (xlQualityStandard nebo xlQualityMinimum).
  • IncludeDocProperties - volitelné - (TRUE - FALSE)
  • IgnorePrintAreas - volitelné - (TRUE - FALSE)
  • From - volitelné - od které stránky
  • To - volitelné - do které stránky
  • OpenAfterPublish - volitelné - zobrazit po zpracování (TRUE - FALSE)
  • FixedFormatExtClassPtr - volitelné

Tisk aktivního listu - pdf

Otestujeme si na jednoduchém příkladu, že nám vše chodí.

Sub TiskDoPdf()      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _      "E:\pokusy-www\excel-VBA-tisk-do-pdf.pdf", Quality:= _      xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _      OpenAfterPublish:=True End Sub

Toto makro vytvoří v adresáři E:\pokusy-www\ soubor: excel-VBA-tisk-do-pdf.pdf, takže ve svém PC musí cesta existovat, stejně jako povolený přístup zápisu (VBA makro nekontroluje a není ošetřeno nesplenění)

Tisk z více listů (vybraných)

Sub TiskDoPdf 2()     Sheets(Array("List1", "List2")).Select     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _     "E:\pokusy-www\excel-VBA-tisk-do-pdf.pdf", Quality:=_     xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _      OpenAfterPublish:=True End Sub

Tisk celého sešitu

Jak vytisknout (exportovat) celý sešit.

ActiveWorkbook.ExportAsFixedFormat

Změna kvality

Jak změnit kvalitu exportu (velikost výsledného souboru):

Quality:= xlQualityMinimum

Ne/zobrazovat exportované pdf

Pokud po exportování nechcete exportovaný (ukládaný) soubor zobrazit. Má ze následek část kódu:

OpenAfterPublish:=False

Dynamické jméno souboru (buňky, datum)

Chcete-li název exportovaného souboru dynamicky nastavovat, nepříklad hodnotou v buňce A1.

Adresaář je pevně zadán d:\dokumenty\

a = Range("A1").Text soubor = "d:\dokumenty\" & a & ".pdf"     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _     soubor, Quality:=_     xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _      OpenAfterPublish:=True

Jméno je složeno a doplněno o datum

FJmeno = Sheets("List1").Range("A1").Text FDoklad = Sheets("List1").Range("A2").Text a = FJmeno & FDoklad & Format(Now, "yyyymmdd")

Aktuální adresář:

' soubor s makrem musí být uložen, ' jinak se cesta nezobrazí, což je určitě jasné ;) CestaAdresare = ThisWorkbook.Path a = Range("A1").Text soubor = CestaAdresare & "\" & a & ".pdf" ' následujícím řádkem můžete zkontrolovat spravnou cestu s názvem ' MsgBox (soubor)

Závěr

A jaké jsou Vaše zkušenosti s exportem (ukládáním)?

Článek byl aktualizován: 19.09.2020 11:07

Podpora - oceňte web a pozvěte mě na čokoládu

Pomohl vám článek? Vyřešili jste problém? Můžete mě podpořit zakoupení tabulky (samozdřejmě čokoládové), když kafe nepiji ;) Odkaz na zakoupení čokolády. Za veškerou podporu vám děkuji a samozdřejmě jí využiji do zdokonalování a rozšířování webu.

Případně přidejte odkaz na vaši oblíbenou sociální síť, případně využijste hashtag #JakNaExcel .

Poděkování

Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.

Vylepšení

Narazili jste v článku na nejasnost, chybu? Máte tip na vylepšení nebo doplnění článku? Budu rád pokud se zmínite v komentářích.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od dubna roku 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím 8x za sebou). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 20 let (o Excel píší přes 25). Zdarma je zde přes 1.500 návodu, tipů a triků, včetně přes 350 různých šablon, sešitů a přes 70 taháků v pdf.

   Pavel Lasák LinkedIn Profil    Pavel Lasák twitter Profil




Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2025 |