Office Icon Gallery
Supponiamo che siate degli accaniti utilizzatori di icone: create comandi personalizzati a "go-go" e, di conseguenza, volete assegnare delle icone adeguate.
Che fate?
Avete due possibilità:
- utilizzate l'elenco dei controlli che vi ho indicato nel post Elenco dei controlli del ribbon, cercate l'IdMso corrispondente al comando di Office la cui icona vi sembra adeguata, lo utilizzate incrociando le dita!!! (e si, perchè come già si è capito, non tutti i comandi dispongono di un'icona, anche se dispongono di un controlID!!!!
- al 2° o 3° tentativo, volete prendere Office e buttarlo nel cestino (di Windows, si intende!), oppure volete linciare me che vi ho indicato questa strada (e questo già è peggio, almeno per me). Allora utilizzate il metodo descritto nel post Ribbon: creare comandi personalizzati utilizzando icone di comandi esistenti consistente nella visualizzazione del comando nella finestra Personalizza e della lettura del relativo nome. E' vero, dovete appuntarvi il nome del controllo ma almeno siete sicuri che l'icona ci sia!!!!
Diciamo, però, che nonostante questi due sistemi possano essere accettabili, sarebbe molto meglio poter visualizzare le icone disponibili in un'unica finestra, e magari non solo le icone dei comandi di Excel, ma tutte quelle di office, a prescindere dal comando cui sono associate perchè, dopotutto, a voi importa poco del comando, A VOI SERVE SOLO L'ICONA!!!!
E qui interviene la Icon Gallery che, non per niente, è il titolo di questo post!
Scaricate l'AddIn dal sito di MSDN
http://www.microsoft.com/downloads/details.aspx?familyid=12b99325-93e8-4ed4-8385-74d0f7661318&displaylang=en
e installatelo: durante la procedura vi si chiederà una posizione per il file che contiene le galleries: indicategliene una comoda.
Successivamente, aprite il file Office2007IconsGallery.xlsm che è stato inserito nella suddetta cartella, e apritelo:come per incanto, nella scheda Sviluppo vedrete apparire ben 9 Galleries contenenti decine e decine di icone!!!!!
(Se la scheda Sviluppo non è visualizzata (e non lo è per default!!), spuntate il flag sulla voce "Mostra barra sviluppo sulla scheda multifunzione" nella finestra Office > Opzioni > Impostazioni Generali).
GUARDATE E STUPITE!!!!!
Aprite una gallery
Fate click su quella che vi piace e vi apparirà una finestra con l'idMso: prendetene nota e utilizzatelo.
Ma qualche utente esigente potrebbe dire: "perchè devo prenderne nota, non potremmo, invece, fare in modo che l'idMso venga salvato negli appunti, così da poterlo utilizzare dove mi pare?"
Possiamo dargli torto?
Sicuramente no!!
Allora ho provveduto ad apportare una piccola modifica al codice del progetto VBA del file excel e, per la precisione, nel modulo RibbonX, che riporta le seguenti righe:
Originale
Sub OnAction(control As IRibbonControl, id As String, index As Integer)
If (control.Tag = "large") Then
id = Strings.Mid(id, 3)
End If
Dim form As New ControlInfoForm
form.nameX.Caption = "imageMso: " & id
Set form.Image1.Picture = Application.CommandBars.GetImageMso(id, 16, 16)
Set form.Image2.Picture = Application.CommandBars.GetImageMso(id, 32, 32) form.Show
End Sub
Aggiungendo le righe in rosso:
Modificato
Sub OnAction(control As IRibbonControl, id As String, index As Integer)
If (control.Tag = "large") Then
id = Strings.Mid(id, 3)
End If
Dim form As New ControlInfoForm
form.nameX.Caption = "imageMso: " & id
Set form.Image1.Picture = Application.CommandBars.GetImageMso(id, 16, 16)
Set form.Image2.Picture = Application.CommandBars.GetImageMso(id, 32, 32)
'codice per memorizzare l'id negli appunti di Office
Dim doId As DataObject
Set doId = New DataObject
doId.SetText id
doId.PutInClipboard
form.Show
End Sub
Se adesso provate a scegliere un'icona e, successivamente, aprite un nuovo file di excel o di word o di quello che volete voi, e incollate: ecco apparire l'agognato IdMso:
Direi che per ora può andare, no???
(Lo so, mi diverto con poco!
)
Alla prossima
Ciao
Laura