Úvodní stránka · Fórum · Ke stažení · Odkazy · Links (EN, DE, CZ, SK) 10. září 2010, Irma
Menu
Úvodní stránka
Časté dotazy k Excelu
Fórum
Kategorie článků
Databanka kódů
Ke stažení
Svět Excelu v RSS
Odkazy
Kontakt

Excel - funkce na listu
Excel - funkce VBA
Excel - klávesové zkratky
Excel - znaky, klávesnice
Excel - standardní barvy
Excel - slovník menu
Excel - konstanty
Excel - technické údaje
DVD Servis Office
Excel menu 2003 (Ribbon)
Offset Statistic

Chat
Sponzorované odkazy
Přihlášení
Přezdívka

Heslo



Nejste členem?
Zaregistrujte se co nejdříve.

Zapomněli jste heslo?
Nechte si poslat nové.
Kdo je online
Hosté online: 1
Žádný člen není online

Registrovaní členové: 537
Neaktivovaní členové: 47
Nejnovější člen: Veverka
Pohotovost Excel
Excel VBA - první pomoc

ICQ status

Skype
Hry online
Sudoku
Sudoku
Sudoku
Sudoku
Excelplus.NET
Excelplus.NET - RSS 0.91 spampoison.com
Google Pagerank - excelplus.netGoogle Pagerank Antispam.er.cz
Statistiky

Excel 2007 a Ribbon - první úpravy

SoftwareRibbon, nebo, chcete-li, Pás karet, který se objevil s příchodem Office 2007, stále představuje pro vývojáře pracující ve vyhřátém pokojíku VBA něco jako čerta v komoře a neví, co s ním. Dnes alespoň do komory nahlédneme klíčovou dírkou.




Jak si upravit Ribbon
Jednou z cest je návrh Ribbonu ve Visual Studiu. V jeho prostředí, pokud vlastníte nadstavbu Visual Studio Tools for Office (VSTO), se v novější verzi nalézá doplněk s názvem RibbonDesigner.

Běžným smrtelníkům znalým jen VBA však nezbývá, než se prokousat tímto článkem a uvedenými zdroji informací. Nutno říci, že ne vše je možné v Ribbonu obsloužit přes VBA.

Výzbroj
Než začneme, předpokládám, že v systému máte nainstalovaný Microsoft .NET Framework (2.0) a pro něj patřičnou podporu v Excelu (definuje se při samotné instalaci sady Office 2007) - viz obrázek níže. Ta nebude nutná ani tak dnes, jako spíš pro doplňky třetích stran v budoucnu. Dalším předpokladem k úspěchu je aplikace Microsoft Office 2007 Custom UI Editor (zkráceně CUE).



Jdeme na to
1. V Excelu 2007 vytvoříme nový sešit, uložíme jej jako sešit s makry (ribbon_test.xlsm) a zavřeme.
2. V Microsoft Office 2007 Custom UI Editoru daný sešit otevřeme. Změna je patrná jen v titulku aplikace a stavovém řádku, okno CUE je zatím prázdné.
3. Podle existujícího vzoru do okna vložíme XML kód a upravíme podle potřeb. V našem příkladu je to komplexní kód ve formát Office Open XML pro RibbonX (ke čtení zde), který si později nastudujete detailně. Pozn. Součástí instalace CUE jsou i příklady - viz menu Sample. Validitu kódu ověříte v CUE s pomocí druhé ikonky zprava. V případě platného kódu obdržíte hlášku "Custom UI XML is well formed". Ani tak ale bezhlavě nevěřte ve stoprocentní funkčnost kódu. Pozor také na to, z jakých zdrojů kód kopírujete, resp. snažte se nepoužívat kód psaný v době testovacích verzí Office 2007, kdy řada parametrů neodpovídá finální verzi.
4. Poslední ikonka v CUE slouží k vytvoření kódu v rámci Callbacks, tj. událostních procedur pro obsluhu samotného Ribbonu a vytvářených prvků. Tyto procedury budou fyzicky umístěny do standardního modulu VBA a následně doplněny. CUE vygeneruje pouze jejich obálku.



5. Soubor uložíme.
6. CUE bohužel nepodporuje české znaky nezbytné pro popisky prvků a další textové řetězce. Takže se neobejdeme bez dalšího ručního zásahu. Jak už možná víte, náš soubor s koncovkou xlsm je v podstatě komprimovaný ZIP soubor. Proto ribbon_test.xlsm přejmenujeme na ribbon_test.xlsm.zip a rozbalíme. Ze složky CustomUI si vytáhneme soubor customUI.xml (na něm jsme pracovali v CUE), ten editujeme (kupříkladu v PSPadu) a s opravenou češtinou vložíme zpět do archivu. Následně soubor Excelu přejmenujeme do původní podoby. Pozn. V příkladu ke stažení níže je již obsažen soubor customUI.xml se správnou diakritikou.
7. Když nyní soubor spustíme v Excelu 2007, dočkáme se nové karty Moje za kartou Zobrazení. Na následujících obrázcích si popíšeme i jednotlivé prvky.






Pokud s naším Ribbonem začneme pracovat, obdržíme hlášky upozorňující na chybějící procedury. Právě teď je čas zpracovat zmíněné událostní procedury (Callbacks). Předpokládám, že jste ještě nezavřeli CUE a tak si pro kostry procedur můžete sáhnout, zkopírovat je a doplnit ve standardním modulu VBA. Pozor! Soubor v CUE už neukládejte! Plné procedury VBA ke čtení najdete zde.
8. Sešit v Excelu uložte. Jste hotovi. I když, přijde to nejdůležitější - pochopit XML kód a příště jej upravit k obrazu svému..

Struktura XML pro RibbonX
Vše je vlastně dáno třemi písmeny - XML, lépe řečeno Office Open XML. Pro ty čtenáře, kteří znají základy HTML, nebude žádný problém do kódu proniknout. Patřičné tagy a parametry už se jen dohledají v literatuře a zbytek vyčte z příkladů. Vřele doporučuji nahlédnout do volně stažitelné kapitoly knihy Excel 2007 VBA Programmer's Reference (Chapter 14 - RibbonX). Další materiály najdete na konci článku, stejně jako celý dnešní příklad ve finální podobě.

Vkládání obrázků
Obrázky je možné k ovládacím prvkům přiřazovat buď přes parametr imageMso, kdy čerpáme z vnitřní databanky Excelu (katalog zde), nebo přes parametr image, kdy použijeme obrázek vlastní. Přiřazení může ulehčit samotný CUE (viz Modifying the Ribbon - Part 4). Ten umí obrázky zapracovat přímo do ZIP archivu samotného sešitu (vytvoří pro ně samostatnou složku v adresáři CustomUI a upraví reference ve složce .rels). Pokud nechceme, aby obrázky byly součástí archivu, použijeme parametr OnLoad v hlavičce XML kódu a obrázek načítáme přes Callbacks ve VBA. Bohužel, stejně jako v Excelu 2003, i zde se budeme muset poprat s potřebnou průhledností obrázků, neboť funkce LoadImage se nekamarádí s typem PNG, jež je pro dané účely nejvhodnější. Naštěstí už Stephen Bullen sestavil modul a kód pro funkci LoadImageGDI, která původní funkci nahradí. Tak můžeme využít vlastností PNG obrázků bez nutnosti hrát si s maskou a alfa průhledností ručně.

Používání vestavěných prvků
Na vestavěné prvky se odkazujeme přes parametr idMso. I pro ně pár chytrých hlav vytvořilo katalog (viz odkaz). Jinou možností je sledovat nápovědu - tlačítko Office / Možnosti aplikace Excel / položka Přizpůsobit. Pokud se myškou zastavíme nad nějakým příkazem v seznamu, objeví se nápověda k prvku. Nás zajímá anglický název uvedený v závorce (zde HyperlinkInsert).



Co zde nebylo zmíněno
XML úpravy Ribbonu počítají i se zásahy do menu pod tlačítkem Office (tag <officeMenu>) a do panelu nástrojů Rychlý přístup (Quick Access Toolbar, v praxi narazíte jen na zkratku QAT, tag <qat>).

Panel nástrojů Rychlý přístup je jediné útočiště pro průměrného uživatele, kam může bez nutnosti dalších znalostí umísťovat buď vestavěné ikony a s nimi spojené příkazy (viz tlačítko Office / Možnosti aplikace Excel / položka Přizpůsobit, resp. klepnutí pravým tlačítkem myši na panel Rychlý přístup a volba Přizpůsobit panel nástrojů Rychlý přístup) nebo i vlastní tlačítka (stejný dialog, Zvolit příkazy z: Makra, přetáhnout makro a upravit ikonu přes tlačítko Změnit). Jestliže se úprava má týkat jen aktivního sešitu, pak v roletce Přizpůsobit panel nástrojů Rychlý přístup: vyberte Pro dokument ... Globální změny panelu Rychlý přístup Excel zaznamenává do souboru Excel.qat (ve Windows XP složka C:\Documents and Settings\<uzivatel>\Local Settings\Data aplikací\Microsoft\OFFICE\). Změny v panelu pro jeden sešit se objeví ve složce userCustomization a souboru customUI.xml vlastního sešitu (připomínám, že sešit je vlastně komprimovaný ZIP soubor). V obou případech se jedná o XML soubor, který můžete editovat.

Pozn. Už jsem se chtěl radovat, že shareware XMLSpy Enterprice 2008 rovněž podporuje editaci Office Open XML. Nicméně tento software sotva rozeznává koncovku XLSX, čímž se vracíme do pravěku a ručnímu přejmenování souborů s makry (XLSM) na ZIP. Validitu navíc ani není schopen potvrdit (nepozná schéma). Rok po vydání Office 2007 tu není solidní software pro editaci Ribbonu nezávisle na Visual Studiu. Nebo ano?

Ke stažení
Kompletní příklad: ribbon_test.zip

Odkazy

Customizing the 2007 Office Fluent Ribbon for Developers:
Part 1
Part 2
Part 3


RibbonX Control Type Tour:
Part 1
Part 2
Part 3


Modifying the Ribbon (Part 7 nefunkční?):
Part 1
Part 2
Part 3
Part 4
Part 5
Part 6
Part 8
Part 9
Part 10
Part 11


Standard ECMA-376: Office Open XML File Formats
Office Fluent User Interface Developer Portal
Excel 2007 VBA Programmer's Reference - Chapter 14 - RibbonX - PDF
Stephen Bullen - LoadPictureGDI.zip
Developer Overview of the User Interface for the 2007 Microsoft Office System
Interactive: Excel 2003 to Excel 2007 command reference guide
imageMso katalog
All 756 icons in Office 2007
2007 Office System Document: Lists of Control IDs
2007 Office System Document: UI Style Guide for Solutions and Add Ins
Ron de Bruin - Excel Control IDs
Jim Rech - Button Images
John Walkenbach's Mso Image Browser
Office 2007 - Icons Gallery

Článek upraven 19.11.2007

Komentáře

Žádný komentář doposud nebyl přidán. Buďte první...

Přidat komentář

Pro přidání komentáře musíte být přihlášeni.

Hodnocení

Musíte být přihlášeni, abyste mohli hodnotit.

Prosím přihlašte se nebo se zaregistrujte.

Výborný Výborný 100% [1 Hlas]
Velmi dobrý Velmi dobrý 0% [Žádné hlasy]
Dobrý Dobrý 0% [Žádné hlasy]
Nevalný Nevalný 0% [Žádné hlasy]
Bídný Bídný 0% [Žádné hlasy]
... nejlépe se zpracovávají tabulky mléčné čokolády