dnes je 26.12.2024

Input:

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

20.2.2013, , Zdroj: Verlag Dashöfer

Při seznamování s formátem XML – eXtensible Markup Language jsme postupně narazili na různé nové značky a odkazy. Minule jsme zvládli namapovat upravené schéma a ručně exportovat Formulář do souboru XML. Dnes si jednak něco podrobněji řekneme o detailech fenoménu XML, jednak pro předsedu Klubu napíšeme makro, které export provede na stisk tlačítka.

Podkladová úloha: Ponecháváme si příklad s Klubem Franze Kafky z minulých dílů. Stáhněte si sešit 2013-05 XML.xlsm z odkazu na konci článku. Sešit otevřete a přejděte na kartu Vývojář. (Pokud se vám karta Vývojář nezobrazuje, jděte přes Soubor->Možnosti->Přizpůsobit pás karet a v pravém panelu přidejte zatržítko před slovo „Vývojář „). Stiskněte ikonu „Zdroj“ a uvidíte zhruba toto:  

Naším dnešním úkolem bude propojit sestrojit makro pro potřebu předsedy. Zkusíme využít nahrávání maker, a výsledek poté upravit:

Po potvrzení OK provedeme stisk ikony Export, zadáme vhodnou složku a jméno souboru, a ukončíme nahrávání makra:

Výsledné makro:

Nahrané makro přestěhujeme pomocí schránky Windows do modulu MS_XML a upravíme pro potřeby předsedy klubu.

Jaké požadavky na export dat bychom měli přijmout? Předně musíme určit vhodnou cílovou složku (obecně URL, tedy i místo na internetu), aby předseda nemusel neustále myslet na to, kam se exporty ukládají. Dále musíme utvořit nějakou konvenci na pojmenovávání XML souborů, aby v tom nebyl zmatek. Zavedeme na listu Param:

Název sestrojíme z obsahu buňky Pocatecni_Cast_nazvu_XML_exportu a připojíme dvouciferné číslo měsíce, dne, hodiny a minuty. Jméno tedy bude vypadat při našem nastavení například KFK_201303251003.xml

Upravené makro:

 

K nasazení vytvořeného makra pro potřeby předsedy musíme vyřešit ještě odkud spouštět a jak ošetřit, aby spouštění nebylo přístupné uchazečům. Na to se podíváme příště. Dnes si ještě řekneme pár slov ke struktuře XML.

Dnes si ještě řekneme kousek z problematiky XML. Je jistě

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