- Dettagli
- Scritto da Alessandra
- Pubblicato: 11 Maggio 2015
- Visite: 12617
Nella barra multifunzione di Excel e in genere dei programmi Office ci sono molte icone rappresentative di diverse funzionalità. Ne abbiamo già parlato a proposito della personalizzazione della barra multifunzione , ora vogliamo vedere come usarle nei form VBA.
Infatti, se vogliamo replicare funzionalità analoghe attraverso VBA, magari con un form, può essere utile che i controlli (soprattutto pulsanti) che attivano tali funzionalità mostrino le stesse icone che usa Office.
Innanzi tutto, le immagini usate da Office, dette immagini MSO, hanno nome che va utilizzato per richiamarle.
Una delle più ricche raccolte di queste immagini e dei loro nomi, si trova qui http://soltechs.net/CustomUI/imageMso01.asp
Le immagini sono raggruppate per gallerie. Aprite la galleria che vi interessa e leggete il nome dell’immagine che volete utilizzare.
Immaginiamo di un form che contiene un pulsante il cui nome è cmdAZ che ordina dei dati in ordine alfabetico. Vogliamo che questo pulsante utilizzi come icona, la classica icona che usa Office per indicare l’ordinamento. Il suo nome MSO è SortUp.
Questa icona non può essere assegnata nella proprietà Immagine del controllo, in fase di costruzione del form, ma assegnata via codice runtime, configurando la proprietà picture.
Sull’evento Activate() del form, scriviamo questo codice
cmdAz.Picture = Application.CommandBars.GetImageMso("SortUp", 16, 16)
Utilizziamo, quindi, il metodo GetImageMso che richiede il nome dell’immagine (distingue fra maiuscole e minuscole, quindi fate attenzione) e le sue dimensioni in pixel (altezza e larghezza).
Ecco come si presenta il nostro pulsante quando eseguiamo il form.