Kommandolinjer for tillegg vises ikke eller fjernes i Excel 2013 eller nyere når du laster inn eller fjerner tilleggene

Symptomer

Når du bruker tillegg i Microsoft Excel 2013 eller nyere, opplever du følgende problemer.

Problem 1

Når du laster inn et Excel-tillegg (xlam) eller et Excel 97-2003-tillegg (xla), vises ikke kommandolinjene i tillegget automatisk. I stedet må du lukke alle arbeidsbøker og deretter starte Excel på nytt for å vise kommandolinjene.

Problem 2

Når du fjerner et Excel-tillegg (XLAM) eller et Excel 97-2003-tillegg (XLA) eller lukker en Excel-makroaktivert arbeidsbok (XLSM) som inneholder kommandolinjer, fjernes ikke kommandolinjene i tillegget eller den makroaktiverte arbeidsboken fra alle åpne arbeidsbøker.

Årsak

Disse problemene oppstår på grunn av enkel dokumentgrensesnitt (SDI) i Excel 2013 eller nyere. Når du bruker et eldre Kommandolinjeobjekt til å opprette menyelementer, legges menyelementene til i Add-Ins-fanen på båndet. I Excel 2013 eller nyere har hver arbeidsbok sitt eget bånd. Når du laster inn eller fjerner tillegg etter at båndet i arbeidsboken er opprettet, oppdateres ikke båndet.

Følgende kodeeksempel oppretter menyelementer ved hjelp av Kommandolinje-objektet:

Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:=msoControlPopup

Løsning

Hvis du vil omgå problem 1, lukker du alle åpne arbeidsbøker og starter Excel på nytt.

Hvis du vil omgå problem 2, kan du bruke én av følgende metoder:

  • Erstatt kommandolinjer med et XML-element (Bånd) i tillegget eller den makroaktiverte arbeidsboken. Hvis du vil ha mer informasjon om båndet (XML), kan du se XML-båndet.

  • I Workbook_BeforeClose hendelse for tillegget eller den makroaktiverte arbeidsboken, går du gjennom alle åpne vinduer og fjerner kommandolinjene. Følgende er et kodeeksempel:

    For Each wnd In Application.Windows
            wnd.Activate
            Application.CommandBars("<ToolbarName>").Delete
    Next wnd
    

Obs!

I denne koden representerer plassholderen <ToolbarName> et kommandolinjenavn.