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

Jste zde: Úvodní stránka » excel » vba-listy-sheet » tisk-sesitu-ukazky-kodu-excel-vba

Tisk sešitu - ukázky kódu - Excel VBA

Videokurzy Excel

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

Jak na tisk, nastavení tiskárny, ukázky sešitu před tiskem, atd. Článek je průběžně doplňován a rozšiřován (reaguje na opakující se dotazy).

7.7.2013: Doplněny další kódy.

Úvodem

Microsoft Excel 2010 VBA - logo

Co se v tomto článku dozvíte, aneb přehledný seznam ukázkových kódu:


Náhled (Ukázka před tiskem)

Než se tiskne je vhodné zkontrolovat jak bude vytištěno. K tomu slouží náhled (Preview). Pomocí VBA se zobrazí:

Aktivní list

ActiveSheet.PrintOut Preview:=True

Určený list

Worksheets("List2").PrintPreview

Vymezená oblast tisku

Pokud nepotřebujete (nechcete) tisknout celý list, ale jen část listu.

'omezení oblasti pro tisk ActiveSheet.PageSetup.PrintArea = "$K$3:$Q$13" ActiveSheet.PrintOut Preview:=True

Vybrat celý list

Jak zajistit vytisknoutí celého listu (například pokud v předchozím kroku byla tisknutelná oblast omezená).

ActiveSheet.Select ActiveSheet.PageSetup.PrintArea = Selection ActiveSheet.PrintOut Preview:=True

Náhled - skrytý list

Jak provést náhled skrytý list

Sheets("List3").Visible = True Worksheets("List3").PrintPreview Sheets("List3").Visible = False

Nastavení tiskárny

Jak zobrazit dialogové okno nastavení tiskárny

Application.Dialogs(xlDialogPrinterSetup).Show

Tisk

Provede tisk aktivního listu na tiskárnu (defaultní), kterou máte nastavenou ve Windows jako výchozí.

ActiveSheet.PrintOut

Tisk aneb o Metodě PrintOut podrobněji.

Aktuálně používána tiskárna

JAk zjistit aktuální, přednastavenou tiskárnu.

AktualniTiskarna = Application.ActivePrinter MsgBox (AktualniTiskarna)

Záhlaví zápatí

Vložit do záhlaví texty z buněk.

With ActiveSheet.PageSetup .LeftHeader = Range("A1") .CenterHeader = Range("A2") .RightHeader = Range("A3") End With

Pro zápatí:

With ActiveSheet.PageSetup .LeftFooter = "&P" .CenterFooter = "Text zadaný přímo" .RightFooter = "" End With

Podrobněji o nastavení záhlaví a zápatí pro sešit v článku: Zápatí a záhlaví pomocí VBA Excel podrobněji (kódy &P, &N, změna fontu, atd. ).

Orientace stránky

Jak změnit orientaci stránky (na výšku, na šířku)

Na šířku

ActiveSheet.PageSetup.Orientation = xlLandscape '2

nebo:

ActiveSheet.PageSetup.Orientation = 2

Na výšku

ActiveSheet.PageSetup.Orientation = xlPortrait '1

nebo:

ActiveSheet.PageSetup.Orientation = 1

Opakovat řádky (sloupce)

Jak zajistit opakování řádku, sloupcu, na každé stránce?

With ActiveSheet.PageSetup .PrintTitleRows = "$1:$1" .PrintTitleColumns = "$A:$A" End With

Kód zajistí opakování prvního řádku a prvního sloupce.

Tisk mřížky, koncept

Jak zajistit vytisknutí mřížky? Pro tisk mřížky je TRUE, FLASE - pokud mřížku tisknout nechceme.

ActiveSheet.PageSetup.PrintGridlines = True

Potřebujeme-li vytisknout jako koncept (jinak False).

ActiveSheet.PageSetup.Draft = Treu

Tisk černobíle

Jak zajistit tisk černobíle. TRUE - ano, FALSE - pokud tisknout nehceme. Vhodné pro úsporu toneru.

ActiveSheet.PageSetup.BlackAndWhite = False

Tisk komentáře

Jak zajistit tisk komentářů.

ActiveSheet.PageSetup.PrintComments = xlPrintInPlace

Volby:

  • xlPrintInPlace
  • xlPrintNoComments
  • xlPrintSheetEnd

Velikost (rozměr) papíru

Jak pomocí VBA změnit velikost papíru (z A4 na A3, nebo A5)? V kódu je ukázka změny na A3.

ActiveSheet.PageSetup.PaperSize = xlPaperA3

Další volby:

  • xlPaper10x14
  • xlPaper11x17
  • xlPaperA3
  • xlPaperA4Small
  • xlPaperA4
  • xlPaperA5
  • xlPaperB4
  • xlPaperB5
  • xlPaperCsheet
  • xlPaperDsheet
  • xlPaperEnvelope9
  • xlPaperEnvelope10
  • xlPaperEnvelope11
  • xlPaperEnvelope12
  • xlPaperEnvelope14
  • xlPaperEnvelopeB4
  • xlPaperEnvelopeB5
  • xlPaperEnvelopeB6
  • xlPaperEnvelopeC3
  • xlPaperEnvelopeC4
  • xlPaperEnvelopeC5
  • xlPaperEnvelopeC6
  • xlPaperEnvelopeC65
  • xlPaperEnvelopeCDL
  • xlPaperB6
  • xlPaperEnvelopeItaly
  • xlPaperEnvelopeMonarch
  • xlPaperEnvelopePersonal
  • xlPaperEsheet
  • xlPaperExecutive
  • xlPaperFanfoldLegalGerman
  • xlPaperFanfoldStdGerman
  • xlPaperFanfoldUS
  • xlPaperFolio
  • xlPaperLedger
  • xlPaperLegal
  • xlPaperLetter
  • xlPaperLetterSmall
  • xlPaperNote
  • xlPaperQuarto
  • xlPaperStatement
  • xlPaperTabloid
  • xlPaperUser

S využitím: http://msdn.microsoft.com/ odkaz na jiný server.

Nastavení okrajů

Jak nastavit okraje:

With ActiveSheet.PageSetup .LeftMargin = Application.InchesToPoints(1.7) .RightMargin = Application.InchesToPoints(1.7) .TopMargin = Application.InchesToPoints(1.7) .BottomMargin = Application.InchesToPoints(1.7) .HeaderMargin = Application.InchesToPoints(1.3) .FooterMargin = Application.InchesToPoints(1.3) End With

Omezení tisku

Jak omezit oblast tisku, například od stránky 2 do stránky 3

ActiveSheet.PrintOut From:=2, To:=3

Centrování

Centrovat můžete vodorovně, svisle, nebo vůbec ;) nabývá hodnot: True / False

With ActiveSheet.PageSetup .CenterHorizontally = True .CenterVertically = True End With

V přípravě

Další kódy v přípravě.

Kódy

Kvalita tisku, měřítko, atd...

' v přípravě

Závěrem

Máte nějaký zajímavý kód pro tisk pomocí VBA? Můžete doplnit do komentářů.

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

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 - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2000 (od 2004 ne této doméně) - Roku 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici také na on-line videích pro SEDUO. Školím a konzultuji, učím na MUNI. Hlavně tvořím tento web. Je zde k dispozici přes 1.000 návodu, tipů a triků včetně stovek různých šablon, sešitů.

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


Komentáře


Kolben

Přidáno: 04.06.14 14:39

Dobrý den, rád bych zjistil kód pro nastavení tisku v odstínech šedi (ne černobíle).

Peter

Přidáno: 10.11.14 14:07

Chcel by som sa spýtať, aký kód použiť pri tlači v merítku 65%. Tlač mám zadefinovanú. Len to tlačí pri 33% a na A4 je to dosť malé.

Petr Imrich

Přidáno: 12.12.14 22:31

Dobrý den, k využívání vba jsem se dostal před týdnem jako samouk. Je mi skoro 40 a tak s tím mám problémy. Chci Vám tímto poděkovat, protože takhle super napsaný manuál pro "debily" jsem ještě nikdy neobjevil. Klobouk dolů před Vámi a děkuji,

Pavel

Přidáno: 13.04.15 21:13

Dobrý den, dá se nějak v Excelu nastavit, aby např. sloupec nebo řádek měl určitou velikost v mm při tisku- t.j. jak se řeší v Excelu převod šířka/výška buňky na velikost v mm? Děkuju za radu.

Martin

Přidáno: 19.05.15 12:09

Dobrý den, je možné nastavit oblast tisku tak, aby se tiskly/exportovaly do PDF pouze vyplněné části tabulky a zbytek tabulky nikoli? Děkuji

Zdeněk

Přidáno: 02.11.15 07:33

Dobrý den chtěl jsem se zeptat jestli je možne vytsiknout na 1 list papíru A4 2 listy sešitu, takže by ten papír byl na šířku a ty dva listy by byl vedle sebe. Děkuji za odpoveď.

kabaka

Přidáno: 22.10.16 10:29

Ahoj, chcela by som sa spýtať,ako zistiť pomocou VBA počet kópií, ktoré nastavil užívateľ pri tlači zošitu. Ďakujem







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 - 2017 | 10491

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