dnes je 21.11.2024

Input:

Excel 2010: Makra - VBA - XML - 10. část

17.5.2013, , Zdroj: Verlag Dashöfer

V předchozích dílech o XML jsme se opírali zásadním způsobem o definici XSD – schématu. Jedná se o metodu, v níž za nás export do XML zařídí Excel. Z hlediska správnosti výstupu a vhodné kontroly obsahu je tato metoda neocenitelná. Ovšem existují důležité situace, kdy s tím nevystačíme. Dnes se zaměříme na přímé sestrojení XML souboru z nitra VBA. Využijeme k tomu DOM = Document Object Model.

Podkladová úloha: Ponecháváme si příklad  s Klubem Franze Kafky z minulých dílů. Stáhněte si sešit 2013-10 XML.xlsm z odkazu na konci článku. Sešit otevřete. Uvidíte zhruba toto:

Předseda se zmínil, že mu z UNESCO napsali, aby seznam náboženství nebyl v jedné položce, ale pěkně jako opakovaná položka. Při představě, jak budete vytvářet další a další mapování, vás jímá závrať, a tak se rozhodnete použít XMLDOM od Microsoftu.

Nejprve si řekněme o DOM něco obecně. Objektový model je obvykle vnímán jako rozhraní mezi programovacími jazyky a nějakým souborem vlastností. Pomocí vlastností a metod tento soubor ovládáme z některého programovacího jazyka – a obecně z mnoha různých. Například z VBA takto ovládáme Excel – pracujeme s objektovým modelem Excelového sešitu. Písmeno „D“  zdůrazňuje, že se bude jednat o dokument. Tedy soubor dat. Nejčastěji jde o data typu HTML nebo XML, ale může se jednat třeba o dokument aplikace Word, nebo CorelDraw.

V tomto seriálu se zatím budeme věnovat pouze datovým objektům XML. Nicméně logika práce s DOM se nám bude hodit i pro další použití.

Musíme si nejprve vytvořit  představu, co vlastně chceme získat. XML datový soubor je vždycky strom. Pro upřesnění, lépe by bylo se o stromu bavit z hlediska jeho pařezu a kořenů, protože se kreslí shora dolů. Představme si, že kořeny jsou nekonečně pevné, takže se nikdy nepřetrhnou. Pařez je jediný, z něj se větví hlavní kořeny, z nich další, až po kořenové vlášení. Pokud by nějaký obr pařez vytrhl ze země, všechny součásti kořenového systému by šly ze země s ním. Žádný kousek by nezůstal v zemi. Stromem nad zemí se nemusíme zabývat.

Přejdeme do VBE, zvolíme v Menu Tools->References, a protože máme náš VBA projekt chráněn heslem, sdělíme naše heslo „1234“. Poté se objeví  následující dialog:

Všimněte si, že máme k dispozci i starší DLL modely XML – verze 3, 4, 5. Použití těchto starších modulů by mohlo mít smysl v případech, kdybychom potřebovali dodržet kompatibilitu

Nahrávám...
Nahrávám...