Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 1 - Úvod do VBA pro Word

V této lekci se naučíme pracovat s VBA v prostředí Wordu a seznámíme se s objekty nejvyšších úrovní v aplikaci MS Word. Konkrétně se bude jednat o objekty Application, Document, Section, Paragraph.

Úvod do VBA ve Wordu

V kurzu Základy Microsoft VBA jsme probrali celý rozsah jazyka. Ten je univerzálně užíván k řízení aplikací v rámci MS Office. Jazyk používá klasické deklarace proměnných, cykly, podmínky a další procedurální prvky. Pro práci s daty a dokumenty v aplikacích MS Office je jazyk VBA rozšířen o práci s objekty.

Obecněji jsme o této problematice VBA pojednali v již zmíněném kurz Základy Microsoft VBA, takže tyto znalosti budeme zde považovat za základ, který uživatel zná. Objekty mezi aplikacemi MS Office se liší jednak pro zaměření každé jednotlivé aplikace na různou část zpracování dat a dokumentů, ale také kvůli svému vzniku.

VBA pro Word má stovky objektů. K hlavním objektům ve Wordu existují desítky až stovky vlastností, metod, událostí, parametrů a konstant.

Většina uživatelů se při práci s problematikou této aplikace v prostředí VBA setká s desítkami objektů, vlastností a metod pro řešení specifických problémů nebo ovládání dokumentů. Protože mnohé vlastnosti a metody mají variantní formy zápisu a množství parametrů, které dovolují další rozdílné směry použití, je i tento rozsah užívání jazyka poměrně náročný.

Objekty budeme probírat podle jejich hierarchie od nejvyšší úrovně Document až po nejnižší, které dovolují uživateli pracovat s jednotlivým odstavcem, slovem nebo znakem, tak jak potřebujeme pro svoje řešené úkoly. Z předchozích vět vyplývá, že probírat zde všechny jednotlivé případy použití, byť jenom těch nejzákladnějších objektů do detailů je nemožné. V této úrovni výuky budeme probírat základní a typické použití objektů v praxi.

Vstup do prostředí VBA

Pro osvěžení paměti uvádíme nejjednodušší přechod z dokumentu Word do prostředí programovacího jazyka VBA. Z okna dokumentu z běžné práce v textu použijeme klávesy Alt+F11. Zobrazí se nám pracovní prostředí jazyka, které je vázáno na všechny otevřené dokumenty, jak je možno se přesvědčit v levém horním okně v průzkumníku projektu. Přístup do prostředí VBA je také umožněn přes funkci menu, která obecně není v menu zobrazována. Přidání si ikony pro přístup do programového prostředí přes Soubor/Možnosti ukazuje obrázek:

VBA pro Word

Pomůckou pro práci programátora s objekty je prohlížeč objektů Object Browser. V prostředí VBA jej zobrazíme klávesou F2, nebo z menu View.

Názvosloví

U objektů užíváme popisu:

  • vrací objekt,
  • ukazuje na objekt,
  • odkazuje na objekt.

V podstatě jde o různé vyjádření téhož výsledku příkazu, používané v různých kontextech. Pokud výsledek příkazu dosazujeme do proměnné, používáme pojem vrací objekt, v jiných případech další dva popisy, ale ve výsledku jde o shodný příkaz.

Hierarchie objektů ve Wordu umožňující práci s textem

Hierarchie objektů je následující:

  • Application,
  • Document,
  • Section,
  • Paragraph,
  • Range,
  • Selection.

Než se budeme věnovat dalším detailům, je třeba uvést postavení VBA v obsluze dokumentů Wordu. Aplikace je v současných verzích vybavena mnoha funkcemi, které dříve byly obsluhovány programem. Dnes se obsluha programem používá u rozsáhlých a mnohonásobně členitých dokumentů, kde umožňuje získat přehled o celku a analýzu částí v rozsahu, na který funkce menu nedosáhnou. Dalším oborem, kde se VBA uplatňuje je automatizace rutinních prací.

Dále je třeba uvést, že text je mnohem variabilnější a méně organizovaný než například tabulka v Excelu nebo Accessu, a tak automatizace činností v rámci práce s textem je obtížnější.

Objekty z horních pater struktury, tedy Application, Document, Section a Paragraph budou zde popsány pouze v nejnutnějším rozsahu, protože většinou ve VBA pracujeme s objekty Range a Selection, které se často vážou k objektům vyšším, tedy zde uvedeným. V takových případech budou vysvětleny podrobnosti u detailu, často přímo s příkladem použití.

Objekt Application

Objekt Application je implicitní objekt na vrcholu hierarchie. Vždy se vztahuje k právě otevřené části MS Office, v našem případě k Wordu, a proto se často ve výčtu objektu při volání objektů neuvádí. Je jediný a některé speciální případy použití budou uvedeny později.

Objekt Document

Objekt Document reprezentuje jeden otevřený dokument v aplikaci Word. Všechny otevřené dokumenty tvoří kolekci Documents, která umožňuje přístup k jednotlivým otevřeným dokumentům pomocí indexu v kolekci nebo použitím názvu dokumentu.

Příklad uvádí dvě verze stejného příkazu, pokud se první otevřený dokument nazývá Den1.doc:

Documents(1).Activate
Documents("Den1.doc").Activate
Vlastnosti objektu Document

Objekt Document má nejčastěji užívané vlastnosti:

  • Password - heslo,
  • Name - název dokumentu,
  • Paragraphs - kolekce odstavců,
  • Path - úplná cesta k dokumentu,
  • Revisions - kolekce sledovaných změn,
  • Sections - kolekce oddílů,
  • Tables - kolekce tabulek,
  • Words - kolekce slov.

Příklad, jak zjistit úplnou cestu k právě otevřenému dokumentu včetně názvu a výpis doplníme počtem slov v dokumentu:

Dim varDoc As Document
    Set varDoc = Application.Documents(1)
    Debug.Print varDoc.Path & "\" & varDoc.Name
    Debug.Print varDoc.Words.Count
Metody objektu Document

K metodám objektu Document řadíme:

  • Activate - vytvoří objekt ActiveDocument reprezentující otevřený a aktivní dokument z kolekce Documents,
  • Close - zavře aktivní dokument,
  • PrintOut - aktivní dokument odešle na nastavenou tiskárnu,
  • PrintPreview - otevře dokument k prohlídce před tiskem,
  • Protect - zahesluje dokument,
  • Save - uloží dokument,
  • SaveAs2 - dokument uloží jako...,
  • Undo - vrátí změny,
  • Unprotect - zruší zaheslování dokumentu.

Dokument zobrazený k prohlídce v tiskové podobě:

Dim varDoc As Document
    Set varDoc = Application.Documents(1)
    varDoc.PrintPreview

Objekt Document má kromě toho události, umožňující jejich zachycení a obsluhu. To znamená vytvořit k tomu příslušnou proceduru, jejíž hlavičku nám systém nabídne:

  • Open,
  • Close.

Nastavení prostředí pro psaní událostní procedury je na obrázku a to včetně textu procedury pro uzavření dokumentu, kde se zobrazí výstražná zpráva:

VBA pro Word

Objekt Section

V české verzi Wordu se tento objekt nazývá oddíl. Většinou se s ním pracuje v rozsáhlejších dokumentech, které mají složitější členění. Umožňuje změnu záhlaví, zápatí a vzhledu stránky, což jsou také jeho nejdůležitější vlastnosti:

  • Footers - zápatí,
  • Headers - záhlaví,
  • PageSetup - nastavení stránky.

Objekt Paragraph

V české verzi se tento objekt nazývá odstavec. K němu se vztahuje už velká část prací s textem, jeho výbava vlastnostmi a metodami tomu odpovídá, jsou jich desítky. Nejčastějším objektem Range bývá právě odstavec, případně slovo. Budeme se proto s objektem Paragraph setkávat neustále, snad ve většině příkladů. Důležitou roli zde hraje také kolekce odstavců Paragraphs, která má mnohé metody a vlastnosti společné s objektem Paragraph a tím pádem umožňuje nastavit u všech odstavců v kolekci shodné vlastnosti, například styl, řádkování, písmo a jeho vlastnosti.

Pozor, každý odstavec končí odřádkováním. Pokud se v textu vyskytne pouze prázdné odřádkování, bez textu, je to považováno za odstavec.

Nejčastěji užívané vlastnosti a metody objektu Paragraph i jeho kolekce (toto umožňuje změnit nastavení uvedených vlastností ve všech členech kolekce, zde ve všech odstavcích dokumentu):

Vlastnosti objektu Paragraph

K nejčastěji užívaným vlastnostem objektu Paragraph řadíme:

  • Format
  • Style
Metody objektu Paragraph

K nejčastěji užívaným metodám objektu Paragraph řadíme:

  • Indent
  • Outdent
  • Next
  • Space1
  • Space15
  • Space2

Upozorníme na dvě důležité a současně zrádné vlastnosti kolekce Paragraphs. Jsou to:

  • First,
  • Last.

Ukazují na první nebo poslední odstavec v nadřízeném objektu, nejčastěji dokumentu. Každé odřádkování je současně odstavcem a tedy prázdný řádek na konci dokumentu nám vrátí prázdný odstavec při použití vlastnosti Last.

V příští lekci, Objekt Range ve VBA pro Word - Vymezení, základní vlastnosti, si probereme vymezení a základní vlastnosti objektu Range ve VBA pro Word. Jedná se o základní objekt určený k manipulaci s textem.


 

Všechny články v sekci
VBA pro Word
Přeskočit článek
(nedoporučujeme)
Objekt Range ve VBA pro Word - Vymezení, základní vlastnosti
Článek pro vás napsal Luboš Marvan
Avatar
Uživatelské hodnocení:
5 hlasů
Snahou autora je žít podle svého
Aktivity