Menu e barre degli strumenti con VBA

    
    Grazie alle funzionalità di Visual Basic for Applications è possibile manipolare le barre degli strumenti ed i menù propri dell'interfaccia di Excel. In questo modo mettiamo le nostre routine sullo stesso livello delle funzionalità proprie di Excel, dando un tocco di professionalità alle nostre applicazioni.
    A volte però le operazioni sui comandi possono risultare scomode, in quanto rischiamo di sporcare le impostazioni predefinite dei comandi. Come abbiamo già accennato, le modifiche apportate a barre e menù non rimangono legate al singolo documento, ma vengono salvate nelle impostazioni di Excel, quindi se aggiungiamo controlli personalizzati in modo sconsiderato, rischiamo di accumulare una massiccia quantità di pulsanti spesso inutili. Nei prossimi paragrafi vedremo come gestire al meglio queste funzionalità evitando di imbrattare inutilmente l'interfaccia di Excel.
    L'oggetto "CommandBar" rappresenta il modello della barra degli strumenti di Excel. Per individuare una determinata barra degli strumenti utilizziamo "ComandBars(indice)". L'insieme CommandBars contiene tutti gli oggetti CommandBar di Excel. Anche i menù sono definiti come oggetti CommandBar, i quali fanno parte della "Barra dei menù" definita anch'essa come un oggetto CommandBar di nome "Worksheet menu bar". In VBA ogni insieme di controlli: menù, sottomenù, menù di popup e barra dei comandi è definito come un oggetto CommandBar.
    Creiamo un nuovo modulo ed inseriamo il codice seguente. Posizioniamoci col cursore all'interno della routine premiamo "F5". La procedura riporta nella finestra immediata tutti gli oggetti CommandBar predefiniti e personalizzati presenti in Excel.
    	Sub BarreComando()
    	For Each cbar In CommandBars
    		Debug.Print cbar.Name, cbar.NameLocal, cbar.Visible
    	Next
    	End Sub
        
    Da notare la proprietà "NameLocal", che restituisce il nome dell'oggetto nel linguaggio dell'utente, mentre la proprietà "Name" riporta il nome originale.