Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Potřebujete-li přidat pás karet (menu Ribbon) v MS Excelu 2007 nebo Excelu 2010 za využití VBA.
Jelikož jsem potřeboval do jednoho Exelovského dokumentu doplnit vlastní Pás karet (Ribbon), našel jsem na internetu několik možností. Například na stránkch Microsoftu teorie pás karte. Jelikož se mi popis zdal složitější, vytvořil jsem si tento článek, kde se snažím na jednoduchém příkladě ukázat, jak toto provést.
Před vlastní tvorbou je potřeba stáhnout Editor UI rozhraní. Je ke stažení na adrese: CustomUIeditor. Po stažení nainstalujeme a obdržíme ikonu:
Po úspěšném spuštění je k dispozici na první pohled jednoduchý prográmek. Takže využijeme jeho jednoduchosti, jelikož v ní je síla.
Vytvoříme vlastní prázdný excelovský soubor, například pod názvem vlasni-pas-karet.xlsm.
Vytvoříme menu v XML. A vložíme do prázdného souboru.
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="customTab" label="Muj Pas Karet" insertAfterMso="TabHome">
<group idMso="GroupClipboard" />
<group id="YouCustomGroup" label="Moje polozky">
<button idMso="VisualBasic" />
<separator id="MySeparator1" />
<button idMso="SheetProtect" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
<button idMso="FileExit" visible="false"/>
Toto nahrajeme v CustomUIeditor do námi vytvořeného prázdného souboru vlasni-pas-karet.xlsm
Uložíme. :)
Soubor Ukázka vlastního menu ke stažení zdarma. Soubor využívá makra.
Máme vlastní pás karet Ribbon. Obsahujíci schánku a moje položky
Pokud bude zájem, v dalším článku popíšu podrobněji co, kde, jak, vkládat.
Článek byl aktualizován: 19.09.2020 11:07
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.
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ů.
Přidáno: 02.09.12 12:27
Ve druhém řádku máte chybu patří tam <ribbon> .
Přidáno: 02.09.12 16:31
To Leopold Bartoš: Děkuji už je opraveno. Přidal jsem soubor ke stažení. Než doprogramuji redakční systém ať může bez problému vkládat speciální znaky jako < > atd.
Přidáno: 27.02.13 20:46
Dobrý den. Nevíte prosím, jak pouze s pomocí makra skrýt / zobrazit existující hlavní kartu? Konkrétně Doplňky (TabAddIns). Předem díky.
Přidáno: 27.02.13 21:49
To Radek: Tento článek http://stackoverflow.com/questions/14056816/invalidate-doesnt-hide-tabs vám nepomůže?
Přidáno: 28.02.13 18:01
To Pavel Lasák: Bohužel, potřebuji pouze VBA bez jakéhokoliv zásahu do XML. Jedná se o distribuovaný excelový sešit uživatelům.
Přidáno: 28.02.13 21:35
To Radek: Zkusím pohledat, v osobních skriptech nic takového nemám.
Přidáno: 04.03.13 20:34
to Radek: mohl by vám pomoci tento web: http://www.rondebruin.nl/ribbon.htm Change the Ribbon in Excel 2007 (2010)
Přidáno: 04.03.13 21:21
To Pavel: Díky za odkaz - upravil jsem ať je odkaz klikatelný.
Přidáno: 05.03.13 08:17
Ještě drobnost: v Custom UI Editor se mi nepodařilo do menu zadat písmena s háčky (ěščřž). Resp. podařilo ale tvdošíjně mi je přepisoval nějakým nečeským fontem... Stačí soubor uložit se znaky bez diakritiky, přejmenovat xlsm na ZIP (XLSX a XLSM jsou v podstatě XML kontejnery zabalené v ZIPU), jakýmkoli programem, který to umí, otevřít ZIP (TotalCommander), vlézt do složky customUI a zeditovat soubor customUI.xml - opravit v něm znaky s háčky. Uložit XML, přejmenovat ZIP zpátky na xlsm...a je hotovo :o)
Přidáno: 05.03.13 16:06
To Pavel: Díky za super doplnění. Hlavně ten trik s českými znaky. Naštěstí jsem to nikdy nepotřeboval,a le až bude potřeba můžu házet machyr, že vím jak na to ;)
Přidáno: 11.07.13 00:13
Oba zkuste Office Ribbon Editor. Verze 4.50 zlobí, raději 4.41 (Office Ribbon Editor 4.4.1). Jinak stačí i mnohem starší 3.0.0b3.
Přidáno: 11.07.13 01:14
Dodatek: Zatím mi funguje bez problémů verze 4.40, u novějších vždy nějaký problém.
Přidáno: 11.07.13 20:09
To Petr Pecháček: Přiležitostně vyzkouším.
Přidáno: 12.07.13 15:42
Ahoj všichni. Nepoužívám Custom UI Editor. Soubor XML vytvořím manuálně, ale když tam mám české znaky, tak mi nový ribbon nechce excel 2007 zobrazit. Nevíte, kde je problém? Nemáte někdo fungující excelovský soubor, kde to jde? Mrknul bych na to co dělám špatně. Díky
Přidáno: 20.02.14 10:59
Dobrý deň, je možné vytvoriť vlastný Ribbon aj pre Outlook 2007? Konkrétne pre menu "Nová správa". Ďakujem.
Přidáno: 13.03.14 18:03
Dobrý den, předem bych rád zmínil, že se mi jedná o Ribbon do MS Access 2007 a mám dotaz ohledně vlastních ikon. Vlastní Ribbon si vytvořím normálně XMLkem v databázi USysRibbons, ale jdou mi tam jen obrázky standardní (imageMso). Chtěl bych tam vložit i vlastní, resp. stažené z internetu. Bohužel jsem zatím nezjistil, jak na to. Poradíte? Případně nějaký odkaz na příklad? Děkuji Jirka
Přidáno: 14.03.14 06:55
@Pavel & @Pavel Lasák: Pokud jde o diakritiku v menu, tak jsem narazil na problém, že se mi v Excelu menu vůbec nezobrazovalo, pokud byla čeština kdekoli v labelech. Vyřešit to lze editací XML a místo českých znaků zadávat jejich numerické kódy. (např á = á)
Přidáno: 14.03.14 06:59
resp. á = "& # 2 2 5 ;"
Přidáno: 07.06.14 10:28
Dobrý den. Děkujiá za skvělý návod zde. Jen bych potřeboval poradit s tím aby se jedno z tlačítek na vlastním pásu po vzkonání "čehosi" deaktivovalo, nebylo klikatelné. Je něco takové možné? Děkuji.
Přidáno: 05.08.14 10:38
@HoU Skvělá rada, nicméně mi Excel stále komolí např. ě nebo ů, máte nějakou spolehlivou tabulku těchto kódů nebo je to jen další M$ bug?
Přidáno: 05.08.14 13:00
Problém s diakritikou je vyřešen. Stačí dodat do xml na první řádek
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
a uložit ve formátu utf-8 (umí např. PSPad). Nemusíte ani psát náhrady jaké používal HoU.
Přidáno: 01.10.14 17:24
VLASTNÍ PÁS KARET JAKO DOPLNĚK zobrazeným v každém sešitu.. jenže.... Ahoj, dostávám se po dlouhé době něco jako je vlastní pás karet, je to prostě neuvěřitelné. Udělal jsme si svůj vlastní a uložil jako doplněk, takže se mi zobrazuje v jakémkoliv sešitu. A nastal problém... Vytvořil jsem si několik šablon v listech. Tyto listy jsem naspal kody ve VBA které se spouští při kliknutí na patřičnou ikonu v pásu karet, jenže toto finguje jenom v listu, ve kterém jsem to dělal, do té doby než celý sešit uložím jako doplněk , kde je tak 17 listů, s různě přednastavenými tabulkami adt. a ejhle ono to nejde.jako v původním listu.. jdou pouze formuláře.. moc prosím o radu, jak pomocí vlastního pásu karet, který uložím jako doplněk, aby mi při kliku se zkopíroval vytvořený list v aktuálním otevřeném sešitu (aktivním). diky díky psr@seznam.cz
Přidáno: 04.10.14 17:10
to Pavel K. Mam stejny problem err 9 .prolistoval jsem uz nekolik knih a projel dost webovek.s touto situaci neni nikde snad pocitano.jedine snad Pup7 ale je placeny a jeste neni jasny zda budou odemknuty kody VBA.nebo to zkusit jako sablonu.ale bude problem s ribbonem.zatim snad neni ucebnice excel vba - ribbon.ta by byla nej.
Přidáno: 04.10.14 22:19
@Pavel K. @jirak možná hloupá otázka, ale jste si jistí jak odkazujete ve VBA na listy? Osobně jsem se setkal s chybou (podotýkám, že vlastní, nikoli excelu), že si uložím aktivní list nebo sešit jako proměnnou, objekt se ale přepíše ve chvíli, kdy se "přepnu" na jiný list nebo sešit. Konkrétní případ je: otevřu excel, mám samozřejmě ihned prázdný sešit, spustím makro z riboonu s tím, že si makro ukládá aktivní sešit do proměnné, makro otevírá další sešit a tím pádem se prázdný neuložený sešit zavírá, objekt se přepsal na nový sešit, kam třeba ani nelze zapisovat nebo se odkazuje na list, který v sešitu není obsažen. Objektový svět je zvláštní a bohužel, "subscript out of range" často nenapoví, kde se chyba stala, nezbývá než se pitvat v kódu.
Přidáno: 05.10.14 04:08
Ahoj, něco podobného jsi zkoušel ? ;) Sub ribbon () Workbooks(Robin).IsAddin = False ( x x něco někam .....Robin Hood :) Workbooks(Robin).IsAddin = True End Sub
Přidáno: 09.11.14 14:03
ahoj.delam si pas karet a kdyz ulozim jako doplnek mam tu kartu v kazdem sesitu.to jsem moc nevedel.tohle zjisteni mi otevrelo uplne jiny pohled a pouziti.makra se nemuseji povolovat pres pas jdou porad.nepotrebuji mit otevreno nekolik sesitu.formulare si spoustim primo z pasu jaky chci.tim padem sesity a kazdy list nepotrebuji mit ovladaci tlacitka pro formulare.a muze to pouzivat kazdy misto slozky s nekolika sesity mu dam jen jeden soubor jako doplnek a je to.vse je vzdy pri ruce.ale neco za neco kod RibboX je pomerne slozity s kombinaci VBA neni na to tolik knizek navodu.jde to pouze na prislusny excel.2007 na 2007.atd.na 2003 to jste mimo.jakakoliv zmena je casove narocna a zmena modulu.jedna chyba v dosti dlouhem kodu a nespusti se.ale je to asi budouci cesta ktera za nekolik let nahradi dosavadni prvky ActiveX a kod VBA.
Přidáno: 09.01.15 11:08
Ahoj. Vytvořil jsem si vlastní pás karet s vlastním tlačítkem, kterému jsem pomocí "onAction" přiřadil makro. Po stisknutí tlačítka se však objevuje tato chyba: Wrong number of arguments or invalid property assignment. Nevíš, co s tím? Pokud toto makro přiřadím tlačítku, které vytvořím na libovolném listu, tak funguje.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
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 - 2024 |