Le barre dei comandi dei componenti aggiuntivi non vengono visualizzate o rimosse in Excel 2013 o versioni successive quando si caricano o si scaricano i componenti aggiuntivi
Sintomi
Quando si usano componenti aggiuntivi in Microsoft Excel 2013 o versioni successive, si verificano i problemi seguenti.
Problema 1
Quando si carica un componente aggiuntivo di Excel (xlam) o un componente aggiuntivo di Excel 97-2003 (xla), le barre dei comandi del componente aggiuntivo non vengono visualizzate automaticamente. È invece necessario chiudere tutte le cartelle di lavoro e quindi riavviare Excel per visualizzare le barre dei comandi.
Problema 2
Quando si scarica un componente aggiuntivo di Excel (con estensione xlam) o un componente aggiuntivo di Excel 97-2003 (con estensione xla) o si chiude una cartella di lavoro abilitata per le macro di Excel (con estensione xlsm) che contiene barre dei comandi, le barre dei comandi del componente aggiuntivo o della cartella di lavoro abilitata per le macro non vengono rimosse da tutte le cartelle di lavoro aperte.
Causa
Questi problemi si verificano a causa dell'interfaccia SDI (Single Document Interface) in Excel 2013 o versioni successive. Quando si usa un oggetto CommandBar legacy per creare voci di menu, le voci di menu vengono aggiunte alla scheda Add-Ins della barra multifunzione. In Excel 2013 o versioni successive ogni cartella di lavoro ha la propria barra multifunzione. Pertanto, quando si caricano o si scaricano componenti aggiuntivi dopo la creazione della barra multifunzione della cartella di lavoro, la barra multifunzione non viene aggiornata.
L'esempio di codice seguente crea voci di menu usando l'oggetto CommandBar:
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:=msoControlPopup
Soluzione alternativa
Per risolvere il problema 1, chiudere tutte le cartelle di lavoro aperte e quindi riavviare Excel.
Per risolvere il problema 2, usare uno dei metodi seguenti:
Sostituire le barre dei comandi con un elemento della barra multifunzione (XML) nel componente aggiuntivo o nella cartella di lavoro abilitata per le macro. Per altre informazioni sulla barra multifunzione (XML), vedere Ribbon XML.For more information about the Ribbon (XML), see Ribbon XML.
Nell'evento Workbook_BeforeClose del componente aggiuntivo o della cartella di lavoro abilitata per le macro scorrere tutte le finestre aperte e rimuovere le barre dei comandi. Di seguito è riportato un esempio di codice:
For Each wnd In Application.Windows wnd.Activate Application.CommandBars("<ToolbarName>").Delete Next wnd
Nota
In questo codice il segnaposto <ToolbarName> rappresenta un nome della barra dei comandi.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per