Befehlsleisten von Add-Ins werden in Excel 2013 oder höher nicht angezeigt oder entfernt, wenn Sie die Add-Ins laden oder entladen.
Symptome
Wenn Sie Add-Ins in Microsoft Excel 2013 oder höher verwenden, treten die folgenden Probleme auf.
Problem 1
Wenn Sie ein Excel-Add-In (xlam) oder ein Excel 97-2003-Add-In (xla) laden, werden die Befehlsleisten des Add-Ins nicht automatisch angezeigt. Stattdessen müssen Sie alle Arbeitsmappen schließen und dann Excel neu starten, um die Befehlsleisten anzuzeigen.
Problem 2
Wenn Sie ein Excel-Add-In (.xlam) oder ein Excel 97-2003-Add-In (.xla) entladen oder eine Arbeitsmappe mit Aktiviertem Excel-Makro (XLSM) mit Befehlsleisten schließen, werden die Befehlsleisten des Add-Ins oder der makrofähigen Arbeitsmappe nicht aus allen geöffneten Arbeitsmappen entfernt.
Ursache
Diese Probleme treten aufgrund der Single Document Interface (SDI) in Excel 2013 oder höher auf. Wenn Sie ein Älteres CommandBar-Objekt zum Erstellen von Menüelementen verwenden, werden die Menüelemente der Registerkarte Add-Ins des Menübands hinzugefügt. In Excel 2013 oder höher verfügt jede Arbeitsmappe über ein eigenes Menüband. Wenn Sie Add-Ins laden oder entladen, nachdem das Menüband der Arbeitsmappe erstellt wurde, wird das Menüband daher nicht aktualisiert.
Im folgenden Codebeispiel werden Menüelemente mithilfe des CommandBar-Objekts erstellt:
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:=msoControlPopup
Problemumgehung
Um Problem 1 zu umgehen, schließen Sie alle geöffneten Arbeitsmappen, und starten Sie Dann Excel neu.
Um Problem 2 zu umgehen, verwenden Sie eine der folgenden Methoden:
Ersetzen Sie Befehlsleisten durch ein Menübandelement (XML) im Add-In oder in der Makro-fähigen Arbeitsmappe. Weitere Informationen zum Menüband (XML) finden Sie unter Menüband-XML.
Durchlaufen Sie im Workbook_BeforeClose-Ereignis des Add-Ins oder der Makro-fähigen Arbeitsmappe alle geöffneten Fenster, und entfernen Sie die Befehlsleisten. Es folgt ein Codebeispiel:
For Each wnd In Application.Windows wnd.Activate Application.CommandBars("<ToolbarName>").Delete Next wnd
Hinweis
In diesem Code stellt der Platzhalter <ToolbarName> einen Befehlsleistennamen dar.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für