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

Nový videokurz na Seduo: Excel pro začátečníky

     

Jste zde: Úvodní stránka » excel » vba-triky » excel-vba-tisk-print

Tisk (print) na tiskárnu - Excel VBA


Jak pomocí VBA Excel tisknout?

Úvodem

Jak pomoci VBA vytisknout fakturu (nebo jiné informace na listě). Prozradí následující článek.

Trochu teorie

Trochu teorie, aneb co vše lze v PrintOut nastavovat.

Syntaxe metody:
PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)

Proměnná Popis
From Číslo stránky od které začína tisk
To Číslo poslední stránky, která se bude tisknout
Copies Počet kopií
Preview Náhled (Ukázka) před tiskem TRUE , FALSE
ActivePrinter Název tiskárny, která bude tisknout
PrintToFile Tisk do souboru – pokud je TRUE
Collate True pro kompletování
PrToFileName Pokud tiskneme do souboru nastavíme jméno souboru

Praktické VBA ukázky kód

Nejednodužší kód. Prostě vytiskneme vše.

ActiveSheet.PrintOut

Praktické VBA ukázky - kód

Jen trpochu složitější. Budeme tisknout od stránky 3 do stránky 10, na tiskárně HP DeskJet (záleží jak mate nastavené tiskárny ve vašem PC), a budete požadovat kompletaci, jelikož máme tři kopie (tj. vytisken se stránky 3,4,5 ..10 a pak zase 3-10 a do třetice také. Bez kompletace se vytiskne 3x stránka 3, 3x stránka 4, atd.

ActiveSheet.PrintOut From:=3, To:=10, Copise:=3, ActivePrinter:="HP DeskJet 930 na LPT1:", Collate:= True

Poznámka: Stránky musí obsahovat text na vytištění.

Omezení oblasti tisku

Určete co vše bude vytisknuto. Většinou se nemusí tisknout úplně všechno. Navíc ušetříte náklady na tisk. Toto zmíním podrobněji v článku a parametrech pro tisk.

ActiveSheet.PageSetup.PrintArea = "$C$4:$K$16"

Náhled před tiskem

Pro náhled před tiskem poslouží VBA kód

Worksheets("List1").PrintPreview

Nastavení parametru tisku pomocí VBA

Nastavení parametru tisku proberu v některém z dalších článku.

PageSetup

Možností je mnoho:

  • BlackAndWhite
  • BottomMargin Property
  • CenterFooter
  • CenterFooterPicture
  • FirstPageNumber
  • FitToPagesWide
  • FitToPagesTall
  • FooterMargin
  • HeaderMargin
  • LeftHeaderPicture
  • LeftFooterPicture
  • LeftMargin
  • OddAndEvenPagesHeaderFooter
  • Orientation
  • Order
  • PrintArea
  • PrintQuality
  • PrintTitleColumns
  • PrintTitleRows
  • RightFooterPicture
  • RightMargin
  • TopMargin
  • Zoom

Závěrem

V kódech nejsou deklarace proměných, jelikož slouží jako ukázkový příklad.

Článek byl aktualizován: 01.11.2014 14:40

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák

Pavel Lasák - autor webu

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2006. Své vědomosti a zkušenosti dávám k dispozici na různých školeních a konzultacích, ale také na tomto webu. K dispozici na tomto webu je mnoho návodu, tipů a triků včetně desítek různých šablon.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil

Doporučte tento článek přátelům

Pokud vám článek pomohl, případně si myslíte, že může pomoci i někomu dalšímu, budu rád když jej sdílením doporučíte přátelům - děkuji:



Komentáře


Monika Z.

Přidáno: 28.06.13 15:51

Dobrý den, potřebovala bych poradit, lze nějak omezit náhled tisku (ve vba)? Tj. aby se při náhledu zobrazoval buď pouze od buňky do buňky, nebo třeba jen stránka 2. Pokud zadám přímo Worksheets("nazev_listu").PrintPreview = "$A$18:$P$85", tak se stále zobrazuje všechno. Děkuji za radu. Monika Z.

Pavel Lasák

Přidáno: 28.06.13 20:27

To Monika Z.: Oblast tisku přes PrintArea ActiveSheet.PageSetup.PrintArea = "T!$B$9:$G$19"

Lucia Budzáková

Přidáno: 03.12.13 10:30

Dobrý deň, dá sa ako oblasť tlače zadať kontingenčná tabuľka? Ďakujem Lucia

Pavel Lasák

Přidáno: 03.12.13 18:39

To Lucia Budzáková:

1) Vybrat kontingenční tabulku (klik na buňku a Ctrl+A) nebo přes kartu Nástroje kontingenční tabulky - Karta Možnosti - sekce - Akce - Vybrat - Celá kontingenční tabulka. Případně to co je třeba tisknout.

2) V Kartě Rozložení stránky - sekce Vzhled stránky - Oblast tisku.

Jirka

Přidáno: 20.12.14 15:30

Dobrý den, super web plný užitečných rad, díky za nšj. mám otázu ohledně tisku, mám na tlačítko makro pro tisk určité části sešitu, save a close. Jen jednu vadu to má, tisk je oboustraný a vyskakuje okno "tip pro tisk" aneb jak vytisknout oboustraně. Lze napsat nějaký "false" kód nebo tak něco pro deaktivování této otravné hlášky? díky

Filip

Přidáno: 14.02.15 17:52

Dobrý den prosím Vás, ať měním název tiskáren jak chci,stále tisknu na výchozí. Lze nějak nastavit buď před tiskem vždy reset na výchozí nebo zvolit jaká tiskárna bude tisknout ? Děkuji

Martin S

Přidáno: 06.03.15 07:01

Dobrý den, prosil bych o radu. Bude to ale asi ještě o trošku složitější. Mám v excelu adreář lidí, určitých osob z různých firem. Na každém řádku jednu. Potřeboval bych makrem naprogramovat tisk štítku se jménem a adresou. Aby makro posbíralo určitá data z buněk, vložilo je s určitým fontem a vystředěním na list A4 (na výšku), zalomilo když bude třeba, případně některé informace, jako je jméno, udrželo vcelku, vedle sebe a nezalamovalo (i za cenu zmenšení fontu). Dá se to nějak dosáhnout ?Půjde to i jinak než otevřením programu Word ?Přece jen už by to nemělo takovou reakční rychlost... Díky předem za odpověď.

Lukas V

Přidáno: 04.11.15 12:02

Jako poděkování za rady a tipy a ochotu pomáhat dál v problematice VB zasílám skromnou částku na uvedený účet. Díky :)

stefan

Přidáno: 15.12.15 17:59

Zdravím Mám problém s tiskem samotných formulářů a to následující - nevím jak měnit tisk samotných formulářů ve VB na výšku (primárně nastaveno) nebo na šířku. Dokážu ho zmenšit zoom na menší procento a vytisknout, ale to nechci. dík za odpověd

Mira

Přidáno: 16.08.16 13:27

Dobrý den, mám nastavenou oblast tisku ("$C$2:$DR$123") a potřeboval bych napevno nastavit na tisk stránku_1 ("$C$2:$DR$62") a stránku_2 ("$C$63:$DR$123"). Za případnou radu děkuji.

Viktor SEEMANN

Přidáno: 02.09.16 10:40

Dobrý den! Kdysi dávno jsem si vytvořil Makro pro tisk dokumentu v Excelu( 1. stránka na 1.listě a 2.stránka na 2. listě), pro tiskárnu (HP), která neuměla oboustranný tisk (ani s ručním zadáváním). Teď jsem dostal tiskárnu s duplexním tiskem (HP), ale nevím jak napsat příkaz v makru, aby se mi tiskl daný dokument oboustranně. Můžete mi poradit? Děkuji!

Radek

Přidáno: 27.11.16 21:21

Dobrý den, také se připojuji s prosbou o kód VBA na oboustranný tisk. Potřebuji k tlačítku přidat kód, který mi vytiskne dva excel listy oboustranně na jeden list papíru. Děkuji.


Přidání nového komentáře

Poznámka: Z časových důvodu není v mých sílách zodpovědět všechny dotazy. Děkuji za pochopení.




(vlož číslo padesátpět)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky, kromě <code> a </code> (pro vkládání VBA kódu). Děkuji za pochopení.
Děkuji, za Vaše komentáře.

Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu. V komentářích si tykáme. ;-)






Sdílejte

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

Nové články


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

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 - 2016 | 13678

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.