Jak na Ribbon

Co je Ribbon již každý ví, ale jak do té lišty dostat tlačítko pro své makro? Rychlou odpověď na tuto otázku můžeme najít softwérkem, ale kdo chce vědět něco víc může se začít.

Koukneme se z čeho je vlastně ten .xlsm složen. To zjistíme snadno. Vezměte si nějaký .xlsm soubor a za koncovku napište .zip, soubor se pak dá otevřít a podívat se co je uvnitř. A výsledek bude nejspíš takovýto:

Vidíme tři složky a jeden soubor. Je možné že je toho tam více, ale nás zajímá jen jedna složka _rels.

Složka _rels obsahuje jeden soubor. Tento soubor obsahuje specifikace XML o tom, jak jsou součásti v rámci balíčku připojeny k vytvoření dokumentu. Tento soubor si otevřeme a uvidíme něco takového:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/>
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
</Relationships>

Do souboru doplníme jeden řádek nad </Relationships>,  řádek řekne souboru, že obsahuje další složku (customUI, tu vytvoříme později) a v té složce je soubor customUI.xml obsahující informace o námi vytvořeném Ribbonu.

 <Relationship Id="cuID" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml"/>

Výsledek bude vypadat nějak takto:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/>
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
<Relationship Id="cuID" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml"/>  <!--Vlozeny radek-->
</Relationships>

Teď si mezi složky vložíme novou složku s názvem customUI (do ZIP nejde vkládat prázdnou složku tak si ji uděláte někde vedle a vytvoření xml souboru ji celou do ZIPu přesuňte). Podobnost u složky s informací ve vkládaném řádku není čistě náhodná. Ano můžete si složku pojmenovat jak chcete, ale musíte na to myslet a příslušně upravit přidávaný řádek.

Ještě obrázek jak to bude vypadat:

Teď se již budeme věnovat samotné úpravě Ribbonu. Ve složce customUI si vytvoříme .txt s názvem customUI.xml (ano můžete si soubor také pojmenovat jak chcete, ale musíte na to myslet a příslušně upravit přidávaný řádek) soubor a otevřeme jej. Do souboru si zkopírujeme text:

<!--Daniel Vitek vitek.online Code produced on 2018.01.10-->
<customUI  xmlns="http://schemas.microsoft.com/office/2006/01/customui" >
	<ribbon >
		<tabs >
			<tab id="Tab1" label="Tab 1">
				<group id="Group1"	label="1 blok">
					<button 
						id="Button1"
						imageMso="_1"
						label="Tlačítko 1"
						size="large"
						supertip="Nápověda"
						onAction="Button1_onAction"/>
					
				</group >
				<group id="Group2"	label="2 blok">
					<button 
						id="Button2"
						imageMso="AddSelectionToAccentsLibrary"
						label="Tlačítko 2"
						size="large"
						supertip="Nápověda"
						onAction="Button2_onAction"/>
					
					<button 
						id="Button3"
						imageMso="AcceptInvitation"
						label="Tlačítko 3"
						size="large"
						supertip="Nápověda"
						onAction="Button3_onAction"/>
					
				</group >
				<group id="Group3" label="3 blok">
         					 <menu id="Menu1" label="Menu1" size="large" imageMso="TextAlignGallery"  >
           					 	<button id="Button4" label="Tlačítko 4" supertip="Nápověda" onAction="Button4_onAction" imageMso="TextAlignGallery" />
            						<button id="Button5" label="Tlačítko 5" supertip="Nápověda" onAction="Button5_onAction" imageMso="TextAlignGallery" />
           					 </menu>
				</group >
			</tab >
		</tabs >
	</ribbon >
</customUI >

Soubor uložíme (pozor na formát aby byl UTF-8), umažeme .zip. Soubor spustíme a výsledek by měl vypadat takto:

V další části se podíváme detailněji jaké můžeme použít ovládací prvky.


Ke stažení