header image

Prilagodimo trak v Microsoftovi pisarniški zbirki po meri

Objavil: P.J. | 22.12.2010 | 6 Komentarjev |

Trak po meri

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

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

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.

PomočDelujoč primerček si lahko brezplačno prenesete na svoj računalnik in preizkusite od tukaj.

Dodatek (UTF kode slovenskih šumnikov)

Č: & #268;
č: & #268;
Š: & #352;
š: & #352;
Ž: & #381;
ž: & #382;

(presledka med znakoma & in # seveda ne sme biti – dodan je zgolj zaradi tega, da WP ne spremeni znakov samodejno)

  1. angl. ribbon []
  2. Visual Basic for Applications []
  3. integrated development environment []
  • Share/Bookmark
Zapisano pod: Naredi si sam, Programiranje
Tags: ,

Odzivi

Dodal sem še možnost prenosa primerčka in UNICODE kode za brezhibno delovanje šumnikov.

Mogoče zanimivo za kakšnega posebej zahtevnega uporabnika:)

Da, seveda. Takšne zadeve npr. ponavadi odpredavam šele na ekspertni (III.-ji) stopnji Excela. Je pa v zadnjem letu bilo kar nekaj vprašanj na to temo iz naslova prehoda na Excel 2007 iz Excela 2003.

Slednji je omogočal dokaj enostavno ustvarjanje orodnih vrstic po meri in klicanje makrojev iz gumbov na le-teh.

Ta prispevek je namenjen ravno tem. Morda naredim celo pripomoček, ki bo iz “stare” orodne vrstice generiral zavihek za 2007.-o oz. 2010.-ko, vendar nič ne obljubim.

P.S.: reklama za reklamo. ;)

Takšne zadeve npr. ponavadi odpredavam šele na ekspertni (III.-ji) stopnji Excela.

A maš tudi začetni tečaj Worda?

Pozdravljen,

MS Word izvajam jaz. Spomladanski termini bodo razpisani v nekaj dneh. Če želiš lahko termine pošljem po e-mailu.
Lp, Suzana

Pustite komentar

Tvoj odziv :

Komentiranje iz tujine je omogočeno zgolj prijavljenim uporabnikom !

Kategorije