Bawiąc się ostatnio w pisanie własnego narzędzia zainteresowałem się tematem jak można zmodyfikować wstążkę (aby np. dodać przycisk uruchamiający moje makro). Oczywiście jako niepokorny człowiek pomyślałem sobie: skoro można na wstążce wstawić własny przycisk, własną kartę, dodać coś do menu kontekstowego to czy można ukryć jakąś kartę? A może dałoby się wyłączyć kilka kart? A może by tak zrobić psikusa i okroić maksymalnie możliwości arkusza kalkulacyjnego?
I tak powstał żartobliwy projekt: Excel dla urzędników. Mamy wersję dla kobiet:

Istnieje też wersja dla chłopców:

Dodatkowe polecenia ukrywają wszystkie możliwe karty, tworzona jest nowa karta z kilkoma przyciskami. Być może pomyślałeś(aś) sobie a to kliknę na kartę plik, przejdę do opcji programu Excel i włączę ukryte karty. Nic z tego! Kartę Plik też można mocno okroić:

Oczywiście wstążka jest modyfikowana tylko i wyłącznie dla tego skoroszytu, który został otworzony. Jeśli uruchomisz nowe okno programu Excel (lub wcześniej był otworzony jakiś inny skoroszyt) to w pozostałych oknach będzie standardowa wstążka z wszystkimi kartami i poleceniami.
Pewnie zastanawia Ciebie to, jak można dokonać takich cudów? Otóż nie zrobimy tego z poziomu Excela, potrzebny jest specjalny program, który wgra odpowiedni plik (lub pliki) z ustawieniami wstążki zapisanymi w języku znaczników XML.
Autorzy książki Excel 2019 PL. Programowanie w VBA polecają program Custom UI Editor for Microsoft Office. Natomiast ja go nie polecam z dwóch powodów: zamiast polskich ogonków są krzaczki (no chyba, że zamiast ogonków będziemy używać &#encji;) . Po drugie modyfikowanie plików mających więcej niż 20 linijek to droga przez mękę. Polecam inny darmowy program Office RibbonX Editor

Wskazówka: zanim otworzysz dany plik w Office RibbonX Editor, zamknij go w Excelu. I odwrotnie! W przeciwnym wypadku te dwa programy wzajemnie będą sobie nadpisywały ten sam plik!
Zwróć uwagę, że każdy z moich skoroszytów posiada wgrane dwa pliki XML. Plik o nazwie customUI14.xml zawiera polecenia dla osób, które posiadają Excela w wersji 2010 (i nowsze), natomiast plik customUI.xml jest przeznaczony dla Excela w wersji 2007. Wersja 2007 nie obsługuje np. modyfikacji widoku Backstage (karta Plik, która pojawiła się dopiero w wersji 2010) oraz modyfikacji menu kontekstowego. Dlatego też plik customUI.xml to tak naprawdę nieco okrojona kopia pliku customUI14.xml. Dodając do pliku własne polecenia pamiętajmy, że owe pliki różnią się odwołaniem do schematu (pierwsza linijka pliku) tj. w pliku customUI14.xml odwołujemy się do schematu: http://schemas.microsoft.com/office/2009/07/customui a w pliku customUI.xml odwołujemy się do http://schemas.microsoft.com/office/2006/01/customui.
Jeśli wykonujesz jakiekolwiek zmiany, zanim zapiszesz zmiany w pliku warto jest sprawdzić, czy nie ma błędów składniowych. W tym celu należy kliknąć w przycisk Validate. Jeśli plik XML posiada jakieś błędy składniowe, to zostanie on całkowicie zignorowany przez Excela (i cała nasza robota idzie na marne).
Kolejna ważna rzecz nad która trochę się męczyłem: otóż znaczniki muszą być w odpowiedniej kolejności. Tj. najpierw jest znacznik <commands> (polecenia programu Excel) potem <ribbon> (modyfikacja wstążki) następnie <backstage> (ustawienia widoku backstage czyli to co się pojawia, gdy klikamy w kartę Plik) a na końcu <contextMenus>.
I na zakończenie jeszcze jedna uwaga: wielkość liter ma znaczenie. Tj. jeśli zamiast znacznika <contextMenus> wstawisz znacznik <contextmenus> to program Excel uzna to za błąd i nici z naszej modyfikacji interfejsu użytkownika.