Se avete cominciato da poco ad usare Office 2007 probabilmente ogni volta che lo aprite vi chiedete dove siano finite le barre personalizzate che eravate abituati a crearvi "pezzo per pezzo" nelle versioni precedenti della suite. Con l'ultima versione della suite di Microsoft, esse sembrano effettivamente essere sparite, sostituite da un'unica barra multifunzione, come viene denominata nell'edizione italiana (mentre quella inglese la chiama Ribbon user interface).
[tit:à‰ possibile creare nuove barre personali?]
No, le cose sono cambiate radicalmente rispetto a Office 2003: è inutile fare clic destro sul Ribbon, non si vedono nà© si possono modificare barre di sorta, nà© tantomeno crearne di nuove; il clic destro consente l'accesso solo a due opzioni relative alla barra di accesso rapida che in sostanza permettono di visualizzarla in modalità "estesa" o "ridotta" e di aggiungere pulsanti corrispondenti ai comandi standard (quelli d'uso più comune per ciascuna categoria). àˆ vano ogni tentativo di incorporarvi icone o pulsanti cui associare macro, almeno operando a livello di interfaccia. Quindi, se si pensa di poter personalizzare le barre degli strumenti in Office 2007 in quattro e quattr'otto, semplicemente aprendo qualche finestra, modificando icone e trascinando pulsanti, ci si sbaglia di grosso. Bisogna sapere che la barra multifunzione è un oggetto interamente
XML. O meglio, si tratta di un oggetto
RibbonX (denominazione che sta per Ribbon Extensibility), in pratica un testo puro, che ne descrive le caratteristiche in linguaggio XML. In quanto testo, lo si può modificare adattandolo a tutte le esigenze modificando lo schema XML su cui esso si basa o creando un proprio schema del genere.
[tit:Quali sono i vantaggi del linguaggio XML?] La flessibilità di questo linguaggio permette di effettuare ogni tipo di personalizzazione del Ribbon: manipolandolo si possono anche inserire nuovi tipi di controlli ai quali sono associabili macro On Action (in modo concettualmente simile a quanto avviene già con i controlli delle vecchie barre personali). Peraltro programmare in XML è teoricamente abbastanza semplice in quanto per farlo si può anche usare un banale editor di testi come il Blocco Note, ma per non commettere errori e rischiare di bloccare tutto, occorre studiarsi la sintassi relativa ai tag che descrivono i diversi componenti del Ribbon fino ai controlli dei tipi più vari - pulsanti, caselle - con le routine associabili agli eventi di ciascuno, da programmare in Visual Basic. Attenzione a come digitate il testo dello schema. La sintassi XML è purtroppo molto diversa dalla "permissività " dell'HTML, pertanto non perdona i "distratti" e pretende che maiuscole e minuscole siano quelle previste dal codice.
[tit:Guida alla personalizzazione del Ribbon]
L'esempio che proponiamo si limita all'aggiunta di una tab personale destinata a una data cartella di lavoro Excel, composta da un paio di pulsanti di comando, che va ad affiancarsi alle altre tab del Ribbon, e arriva ad essere composta da un gruppo (group) e due pulsanti (button), a ciascuno dei quali viene associata una routine, che va inserita nel modulo Foglio1.
Create sul desktop un file customUI.xml, mediante il Blocco Note, digitando il codice XML seguente. Esso definisce il tipo di schema e le etichette della tab, del gruppo di pulsanti, dei singoli pulsanti, la loro dimensione e la macro associata che viene eseguita al clic su di essi:
Create una cartella Excel 2007 "con attivazione macro" (cioè in grado di supportare la presenza di macro e con formato basato su Xml) NumeriACaso.xlsm contenente nel primo foglio di lavoro un intervallo di celle (per esempio A1:B10) con nome "Selezione". Aprire l'Editor VBA facendo clic sul pulsante Visual basic contenuto nella scheda Sviluppo, o premendo Alt+F11. Fate doppio clic sul Foglio1 del progetto relativo alla cartella di lavoro corrente, nella finestra Progetti. In esso ricopiate le due routine seguenti:
Quindi aggiungete al medesimo progetto una semplice UserForm1 (da Inserisci-UserForm). InserNum e ApriFinestra sono le routine associate ai controlli "Button1" e "Button2" descritti nel file customUI.xlm. L'argomento controllo, di tipo IRibbonControl, non va assolutamente tralasciato, altrimenti Excel la rifiuta la macro.
Chiudete il file Excel e modificatene l'estensione .xlsm in .zip (mi raccomando, ciò non significa inviare il file ad una cartella compressa, ma proprio sostituirne l'estensione con "zip"). Appare un messaggio di Windows per avvertire che modificando l'estensione del file esso potrebbe diventare inutilizzabile. Ignoratelo e premete Sì, quindi apritelo. A questo punto, per la particolare natura compressa dei documenti di Office 2007, vengono evidenziati i vari componenti del file: tre cartelle (_rels, Docprops e xl) ed un file Xml (ContentTypes). Trascinando il mouse aggiungetee all'archivio NumeriACaso.zip il file di personalizzazione customUI.xml salvato sul desktop. Apritee la cartella _rels, copiatee da essa sul desktop il file XML .rels e apritee con Blocco Note quest'ultimo file, quindi aggiungete la stringa seguente tra le ultime tag Relationship "rId3" e "rId2", che definiscono il collegamento con il file customUI.xml:
Salvate il file .rels così modificato e reinseritelo nella cartella _rels, poi chiudete il file .zip e ripristinatene l'estensione originaria .xlsm. Appare nuovamente il messaggio di avviso di Windows. Confermare la modifica. Alla riapertura di NumeriACaso.xlsm si può notare, sulla destra della barra multifunzione, la nuova tab personalizzata Mia Tab, contenente un gruppo etichettato "Gruppo Mio", al cui interno sono contenuti due grossi pulsanti, a loro volta etichettati "Inserisci numeri a caso" e "Apri UserForm". Cliccando sull'uno o sull'altro di questi pulsanti otteniamo rispettivamente l'inserimento dei numeri casuali e il lancio della Userform1.