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

Jste zde: Úvodní stránka » excel » vba-triky » Automaticky-vyplnovat-Wordovske-sablony-vyuzitim-Excel
Microsoft Excel logo

Automaticky vyplňovat Wordovské šablony využitím Excel

Videokurzy Excel

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

Jak na automatické vyplňování šablon ve Word využitím Microsoft Excel. Nebo-li potřebuji vyplnit hotový dokument wordovský dokument a na patřičná místa vložit údaje z tabulky v Excel (například jméno, telefon, Id-čko).

Úvodem do automatického vyplňování šablon ve Word využitím Excel

Tento článek pojednává jak vyplnit hotový wordovský dokument který obsahuje předpřipravený dokument a potřebujete jej vyplnit daty která máte v Excel a navíc uložit jako *.pdf s patřičným názvem (nebo *.doc, ale to již víte z minulého článku).

Tento článek budu doplňovat proto je pro přehlednost rozdělen na jednotlivé kapitoly:


Poznámka: Pominu, že ve Word je hromadná korespondence, kde data můžete načíst a vygenerovat. Potřebuji tvořit automaticky z Word.

Dokument ve Word - jak předpřipravit šablonu základ

Nejednodušší, protože mnohdy už hotovou šablonu dostanete, jen na místa kam se mají automaticky vkládat údaje z Excel použijete ve Word Ovládací prvky z karty Vývojář (Developer). Zde předpokládám základní znalost Word a umístění a pojmenování ovládacích prvků.

Pro připomenutí. Z karty Vývojář (Developer) vložit ovládací prvek obsahu pro prostý text (Plain text Content Control). A přes Vlastnosti (Properties) vložíte název Značky (Tagu).

Výsledek

Kromě nezbytných poznámek obsahuje i ony zmiňovaná textová pole z ovládacích prvků, která jsou otagovaný (značky pojmenovány) Name1 až Name3. To že jsou názvy popřehazovaný je záměr. Ukáži dva (tři) způsoby zápisu.

Word šablona - pro automatické vyplnění pomocí Excel

Poznámka: Nedaří-li se v kapitole ke stažení si můžete hotový wordovský dokument stáhnout.

Zapnutí Reference (knihovny) v Excel VBA -

Microsoft Word 16.0 Object Library

Než začnete pracovat (zapisovat) do Word je potřeba zkontrolovat zda máte v Reference ve VBA zapnutou knihovnu. Pro práci s Word je potřeba Microsoft Word 16.0 Object Library.

Ve VBA Excel v menu Tools > References. Pak jen stačí zaškrtnout knihovnu Microsoft Word 16.0 Object Library, pokud již nemáte (poznámka: ve starší/novější verzi může být číslo jiné ).

MS Excel Microsoft Word 16.0 Object Library knihovna v References

Otevřít Existující dokument ve Word

Nejprve otevřete existující dokument.

Dim objWord Dim objDoc Set objWord = CreateObject("Word.Application") ' v daném adresáři soubor s názvem k dispozici Set objDoc = objWord.Documents.Open("D:\test\Vyplnovani.doc") objWord.Visible = True

Poznámka: Kontrola zda dokument existuje si můžete doplnit sami. Stejně tak otevření jména přes proměnou.


Uložit otevřený dokument jako doc

Pak jen stačí uložit pod požadovaným jménem jako doc.

objDoc.SaveAs ("D:\test\Ulozeni.doc") ' zavří a ukončit objDoc.Close objWord.Quit Set objWord = Nothing Set objDoc = Nothing

Nebo-li otevřu a uložím pod jiným jménem

Dim objWord Dim objDoc Set objWord = CreateObject("Word.Application") ' v daném adresáři k dispozici ' musí mít patričné Controls, Ovládací prvky Set objDoc = objWord.Documents.Open("D:\test\Vyplnovani.doc") objWord.Visible = True ' možno uložit i jako doc objDoc.SaveAs ("D:\test\Ulozeni.doc") ' zavřít a ukončit objDoc.Close objWord.Quit Set objWord = Nothing Set objDoc = Nothing

Mohu kontrolovat, zda existuje a smazat:

If Dir("D:\test\Ulozeni.doc") <> "" Then Kill "D:\test\Ulozeni.doc" End If .SaveAs ("D:\test\Ulozeni.doc") .Close ' zavřít dokument

Další ukázky viz kapitolu Tipy a triky

Uložit otevřený dokument jako pdf

Pokud chci dokumenty ukládat jako pdf

objDoc.SaveAs2 "D:\test\Vyplneno_01.pdf", 17

Pokud by byl potřeba i celý kód

Dim objWord As Object Dim objDoc As Object Set objWord = CreateObject("Word.Application") ' v daném adresáři k dispozici ' musí mít patričné Controls, Ovládací prvky Set objDoc = objWord.Documents.Open("D:\test\Vyplnovani.doc") objWord.Visible = True ' uloží jako *.pdf objDoc.SaveAs2 "D:\test\Vyplneno_01.pdf", 17 ' zavří a ukončit objDoc.Close objWord.Quit Set objWord = Nothing Set objDoc = Nothing

Zapsat do Ovládacího prvku - pořadí

Jen otevírat a uložit pod jiným názvem je málo. Tak šablonu vyplníme. V prvním kroku. Podle pořadí ovládacích prvků. Vyplňuje se skutečné pořadí. Ne to v jakém pořadí je vložíte. V šabloně jsme pro demonstraci třetí vložený ovládací prvek dal před první dva vložené (otestoval jsem že, jde o pořadí ve Wordovském dokumentu / ne pořadí vložení).

To že se zapisuje postupně ja asi logické. Pokud ale nechete spoléhat na pořadí, doporučuji využít odkazování se přes názvy značek (tagu). Ukázka jak na tag je v následující kapitole.

Odkázat se na pořadí je nejjednodušší:

'ContentControls - musí být k dispozici ve Word ' dodržuje pořadí jak jsou za sebou objDoc.ContentControls(1).Range.Text = "pokus1" objDoc.ContentControls(2).Range.Text = "pokus2" objDoc.ContentControls(3).Range.Text = "pokus3"

Zapsat do Ovládacího prvku - Tag

Logičtější je využít jména značek (tagů). Přidate-li další ovládací prvek a vyplníte mu název značky (tagu), tak se na něj jednoduše odkážete a máte hotovo.

objDoc.SelectContentControlsByTag("Name1").Item(1).Range.Text = "Name1" objDoc.SelectContentControlsByTag("Name2").Item(1).Range.Text = "Name2" objDoc.SelectContentControlsByTag("Name3").Item(1).Range.Text = "Name3"

Celý kód může vypadat, včetně uložení do pdf:

' ------------------------------------------------- ' - Vyplnování šablony ve Word a ulození jako pdf ' - Pavel Lasák, 2018, Verze 01 testovací ' - využitím Stackoverflow ' ------------------------------------------------- Dim objWord As Object Dim objDoc As Object ' Dim objSelection Set objWord = CreateObject("Word.Application") ' v daném adresáři k dispozici ' musí mít patričné Controls, Ovládací prvky Set objDoc = objWord.Documents.Open("D:\test\Vyplnovani.doc") objWord.Visible = True ' Set objSelection = objWord.Selection 'ContentControls - musí být k dispozici ve Word s příslušným Tagem ' nezaleží na pořadí objDoc.SelectContentControlsByTag("Name1").Item(1).Range.Text = "Name1" objDoc.SelectContentControlsByTag("Name2").Item(1).Range.Text = "Name2" objDoc.SelectContentControlsByTag("Name3").Item(1).Range.Text = "Name3" ' uloží jako *.pdf objDoc.SaveAs2 "D:\test\Vyplneno_01.pdf", 17 ' zavří a ukončit objDoc.Close objWord.Quit Set objWord = Nothing Set objDoc = Nothing

Poznámka: Dynamickou změnu textů a názvu *.pdf kových souboru již nechám na vás.

Další tipy

Zde si budu ukládat další tipy, triky, které se mohou hodit.

Designová úprava textu

Pokud máte šablonu nemusíte řešit ;)

objSelection.Font.Bold = True objSelection.Font.Size = "22"

Přidání

Přidat text

objSelection.TypeText ("Nový zápis..." & vbCrLf)

Speciální znaky

Odřádkování:

vbCrLf

Další tipy v přípravě

...

...
Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor Automaticky vyplňovat Wordovské šablony využitím Excel VBA soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra.

Soubor Wordovská šablona pro využití s Excel VBA soubor ve formátu *.doc ke stažení zdarma.


Závěrem

Budu rád za případná doplnění vylepšení.

Doplnění/Prosba: Kód mi sice funguje jak potřebuji, ale opravdu budu rád za případná vylepšení doplnění. Tipy jak vyřešit lépe a elegantněji. Určitě pomůže dalším.

Článek byl aktualizován: 29.11.2018 10: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, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 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 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 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 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 zatím nejsou

Můžete být prvními co zanechají smysluplný komentář.







Sdílejte

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

Nové články


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 - 2018 | 306

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