
Trak po meri
Z različico pisarniške zbirke MS Office 2007 smo se spoznali s popolnoma prenovljenim uporabniškim vmesnikom, katerega osrednji del je trak1. Tako smo se poslovili od uveljavljenega in preprostega sistema orodnih vrstic in preprostega prilagajanja le – teh lastnim željam in potrebam. Seveda tudi pri novejših dveh različicah stvar ni misija nemogoče, kakor se morebiti zdi na prvi pogled.
V osnovi je treba vedeti, da je prilagajanje uporabniškega vmesnika pravzaprav še vedno delo iz dveh korakov. Sama prilagoditev izgleda namreč povečini še ne pomeni tudi prilagajanja funkcionalnosti. Slednje največkrat dosežemo z uporabo npr. VBA2, čemur pa v tem sestavku ne bomo posvečali prevelike pozornosti. Predvsem se bomo namreč posvetili samemu prilagajanju traku.

Shranjevanje - Office menu
Najprej si nekje na disku ustvarimo mapo in jo poimenujmo npr. RibbonUI – Vaja. Nato odprimo npr. Microsoft Excel 2007 in shranimo še prazen dokument v mapo, ki smo jo ravnokar ustvarili. Pozorni bodimo, da pri shranjevanju izberemo možnost “Delovni zvezek z omogočenimi makri“, ki ima končnico “xlsm“. Tudi datoteko poimenujemo enako kot prej in tako dobimo dobimo datoteko RibbonUI – Vaja.xlsm v naši mapi. Sedaj je čas, da zapremo Excel.
Našo datoteko v raziskovalcu preprosto preimenujemo, tako da na koncu dodamo končnico “zip“. Tako je naša datoteka sedaj poimenovana RibbonUI – Vaja.xlsm.zip in jo lahko odpremo z našim priljubljenim programom za delo z arhivskimi datotekami. lahko tudi kar z v MS okensko okolje vdelanim pripomočkom.
Ko odpremo naš arhiv, vidimo v njem mapo poimenovano _rels. V tej mapi najdemo datoteko .rels. To datoteko potegnemo iz arhiva v našo mapo, ki smo jo na začetku ustvarili in jo odpremo v enem izmed navadnih urejevalnikov besedila, npr. Notepad++. Na koncu datoteke, pred oznako </Relationships> dodamo eno samo vrstico (XML oznako):
<Relationship Id="customUIRelID" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml"/>
Shranimo spremembo, ki smo jo naredili in datoteko vstavimo nazaj na njeno mesto v arhivu. Sedaj je čas za naslednji korak. V naši mapi ustvarimo novo (pod)mapo in jo poimenujemo customUI. V slednji ustvarimo novo besedilno datoteko, ki jo poimenujmo customUI.xml. Tudi njo odprimo v našem urejevalniku besedila in vanj zapišimo nekaj takšnega:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab idMso="TabHome"> <group id="motBliznjice" label="Moje bližnjice" insertBeforeMso="GroupClipboard"> <button idMso="FileSave" showLabel="false" /> <splitButton idMso="FileSaveAsMenu" showLabel="true" /> <splitButton idMso="FilePrintMenu" showLabel="true" /> </group> </tab> </tabs> </ribbon> </customUI>
Shranimo spremembe, nato pa celo mapo customUI, ki smo jo prej ustvarili povlečemo v arhiv, na vrhnjo – torej isto raven, kot je mapa _rels. Sedaj je čas, da arhivu odstranimo končnico “zip“, ki smo jo dodali na začetku, tako da spet dobimo našo datoteko RibbonUI – Vaja.xlsm in jo odpremo z dvoklikom – ali kakor nam je pač najljubša metoda. Če smo vse pravilno prepisali, bi morali na zavihku Osnovno na samem začetku videti novo skupino Moje bliznjice in v njej tri gumbe, ki smo jih mi dodali.

Spremenjen trak
Tako, sedaj znamo. S šumniki zna biti nekaj težav, zato se jim – če se le da – ogibajte. Kaj pa, če bi želeli ustvariti čisto svoj gumb in mu prirediti čisto svojo funkcionalnost? Enostavno. Ponovimo zgornji postopek tako, da vstavimo dopolnjeno datoteko customUI.xml, v katero smo dodali nov gumb, kateremu smo določili enoličen atribut id, namesto idMso in atribut onAction. Tako smo dobili nekaj takšnega:
<button id="motMojGumb" label="Besedilo gumba" imageMso="HappyFace" size="large" onAction="MojMakro" />
Sedaj je treba napisati še odzivno proceduro v VBA. IDE3 najhitreje prikličemo s kombinacijo tipk [Alt]+[F11]. Dodamo nov modul in ga poimenujemo npr. RibbonCallbacks. Nato vanj napišemo proceduro z enakim imenom, kot smo ga vpisali za vrednost atributa onAction – v našem primeru torej MojMakro.
Public Sub MojMakro(control As IRibbonControl) MsgBox "Pritisnili ste na gumb " & control.Id, _ vbInformation + vbOKOnly, _ "Ju-hu!" End Sub
Vse skupaj shranimo in ko pritisnemo na naš gumb, bi se moralo pojaviti pojavno okno, ki smo ga določili v zgornjem primeru. S tem smo tudi zaključili našo današnjo vajo in se spoznali s prilagajanjem uporabniškega vmesnika Microsoftove pisarniške zbirke, ter spoznali, da so nove oblike zapisa docx in xlsx v bistvu arhivske datoteke, v katerih se nahaja skupek datotek, ki določajo posamezen dokument.
Postopek sam po sebi se da povsem enako aplicirati tudi na ostale datoteke iz pisarniške zbirke, torej Wordow dokument ali PowerPointovo predstavitev in ni vezan samo na MS Office Excel. Roko na srce bi zadeva morala delovati tudi v primeru uporabe različice MS Office 2010. Pa veliko užitka pri ustvarjanju vam želim.

Dodatek (UTF kode slovenskih šumnikov)
č: & #268;
Š: & #352;
š: & #352;
Ž: & #381;
ž: & #382;
(presledka med znakoma & in # seveda ne sme biti – dodan je zgolj zaradi tega, da WP ne spremeni znakov samodejno)