Anpassa menyer och menyrader i Excel

Artikelöversättning Artikelöversättning
Artikel-id: 830502 - Visa produkter som artikeln gäller.
Visa alla | Dölj alla

På den här sidan

Sammanfattning

I den här artikeln beskrivs anpassning av menyer och menyrader i Microsoft Excel 2000 och senare. Artikeln innehåller stegvisa instruktioner och kodexempel för programmässig hantering och anpassning av menyrader, menyer, kommandon, undermenyer och snabbmenyer i Microsoft Excel.

INLEDNING

För många vanliga uppgifter i samband med anpassning av menyrader och menyer i Microsoft Excel 2000, Microsoft Excel 2002 och Microsoft Office Excel 2003 kan dialogrutan Anpassa användas. För mer avancerade uppgifter eller för anpassning av menyrader och menyer för ett anpassat program kan det vara nödvändigt att skapa Microsoft VBA-koder (Visual Basic for Applications).

Om du vill veta mer om dialogrutan Anpassa gör du följande: klicka på Hjälp om Microsoft ExcelHjälp-menyn, skriv anpassa menyrad i Office-assistenten eller Svarsguiden och klicka på Sök så att avsnittet visas.

I den här artikeln får du lära dig skriva VBA-kod för anpassning av menyrader, menyer, menyalternativ, undermenyer och snabbmenyer.

Mer Information

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till med att förklara funktionen hos en viss procedur, men kan inte ändra dessa exempel för att ge ytterligare funktioner eller skapa procedurer som motsvarar dina speciella behov.

Exempel i den här artikeln

I exemplen i den här artikeln används VBA-kod i Excel 2000, Excel 2002 och Excel 2003 för anpassning av menyer. Så här använder du makroexemplen:
  1. Starta Excel.
  2. Peka på MakroVerktyg-menyn och klicka sedan på Visual Basic Editor.
  3. Klicka på ModulInfoga-menyn.
  4. Skriv in ett av makroexemplen i den här artikeln, eller kopiera och klistra in exemplet i ett modulark.
  5. Klicka på Kör Sub/User FormKör-menyn.
  6. Om dialogrutan Makro visas klickar du på makronamnet och klickar sedan på Kör.

Kommandofält

I Microsoft Office kontrolleras verktygsfält, menyrader och snabbmenyer alla programmässigt som en typ av objekt: kommandofält. Samtliga följande objekt representeras i VBA av CommandBar-objekt:
  • Menyrader, verktygsfält och snabbmenyer.
  • Menyer på menyrader och verktygsfält.
  • Undermenyer på menyer, undermenyer och snabbmenyer.
Du kan ändra alla inbyggda menyrader eller verktygsfält, och du kan skapa och ändra anpassade verktygsfält, menyrader och snabbmenyer för leverans med VBA-koden. Du presenterar funktionerna i programmet som enskilda knappar i verktygsfält eller grupper av kommandonamn på menyer. Eftersom verktygsfält och menyer båda är kommandofält använder du samma slags kontroller.

I VBA och Microsoft Visual Basic representeras knappar och menyalternativ av CommandBarButton-objekt. Popup-kontrollerna som visar menyer och undermenyer representeras av CommandBarPopup-objekt. I följande exempel är kontrollerna "Menu" och "Submenu" båda popup-kontroller som visar en meny och en undermeny. Både menyn och undermeny är unika CommandBar-objekt med egna uppsättningar kontroller.

I Microsoft Excel benämns menyrader och verktygsfält som samma programmerbara objekttyp, CommandBar-objektet. Kontrollerna i CommandBar-objektet används för att referera till menyer, menyalternativ, undermenyer och snabbmenyer. En konstant används med varje kontroll i Typ-argumentet för att ange vilken typ av kontroll som ska användas för menyn, undermenyn eller kommandot.

Kontrollkonstanter

Följande är en lista över kontrollkonstanter i Excel 2003 som anger vilken typ av grafisk kontroll som ska användas för en viss menyradskontroll:
  • MsoControlActiveX*
  • MsoControlAutoCompleteCombo***
  • MsoControlButton
  • MsoControlButtonDropdown
  • MsoControlButtonPopup
  • MsoControlComboBox
  • MsoControlCustom
  • MsoControlDropdown
  • MsoControlEdit
  • MsoControlExpandingGrid
  • MsoControlGauge
  • MsoControlGenericDropdown
  • MsoControlGraphicCombo
  • MsoControlGraphicDropdown
  • MsoControlGraphicPopup
  • MsoControlGrid
  • MsoControlLabel
  • MsoControlLabelEx***
  • MsoControlOCXDropDown
  • MsoControlPane **
  • MsoControlPopup
  • MsoControlSpinner***
  • MsoControlSplitButtonMRUPopup
  • MsoControlSplitButtonPopup
  • MsoControlSplitDropdown
  • MsoControlSplitExpandingGrid
  • MsoControlWorkPane**
*=Ny i Microsoft Excel 2000
**= Ny i Microsoft Excel 2002
***=Ny i Microsoft Office Excel 2003

Menyrader

En menyrad är en sorts kommandofält. Här lägger man till menyer, menyalternativ och undermenyer.

Om du vill veta mer om hantering av menyrader och menyalternativ i Excel gör du följande:
  1. Starta Microsoft Visual Basic Editor.
  2. Klicka på Hjälp om Microsoft Visual BasicHjälp-menyn.
  3. Skriv menyrader i rutan Svarsguiden eller Office-assistenten, och klicka på Sök.
  4. I Excel 2003 och Excel 2002 klickar du på Lägga till och hantera menyrader och menyalternativ. I Excel 2000 klickar du på Om menyer och verktygsfält.
Du kan ändra både menyraden och kontrollerna på menyraden vid körningstillfället. Ändringarna av menyraden kan påverka menyradens utseende eller position. Ändringar av kontrollerna beror på kontrolltypen. I följande tabell anges de vanligaste egenskaperna och metoderna för ändring av tillstånd, åtgärd eller innehåll för en kontroll:
Dölj tabellenVisa tabellen
Egenskap eller metodSyfte
Lägg tillLägger till en menyrad med hjälp av Add-metoden i CommandBars-objektsamlingen och genom att ange värdet TRUE för Menubar-argumentet.
EnabledOm egenskapen Enabled har värdet TRUE kan användaren göra den angivna menyraden synlig med hjälp av Visual Basic-kod. Om egenskapen Enabled har värdet FALSE kan användaren inte göra menyraden synlig. Menyraden visas emellertid i listan över tillgängliga kommandofält.
ProtectionGör det möjligt att skydda menyraden från bestämda användaråtgärder.
PositionAnger den nya menyradens position i förhållande till programfönstret. Denna position kan vara någon av följande MsoBarPosition-konstantegenskaper: msoBarLeft, msoBarTop, msoBarRight, msoBarBottom, msoBarFloating, msoBarPopup (används för snabbmenyer) eller msoBarMenuBar (endast för Apple Macintosh).
VisibleAnger om kontrollen är synlig eller dold.

Returnera ett ID för en kommandoradskontroll

Följande exempelkod returnerar ID för den aktiva menyraden:
Sub Id_Control ()
Dim myId as Object
   set myId = CommandBars("Worksheet Menu Bar").Controls("Tools")
   MsgBox myId.Caption & Chr(13) & MyId.Id
End Sub

Ta reda på namnet på den aktiva menyraden

Följande exempelkod returnerar namnet på den aktiva menyraden:
Sub MenuBars_GetName()
   MsgBox CommandBars.ActiveMenuBar.Name
End Sub

Spara det aktiva tillståndet (för inbyggda eller anpassade menyrader)

Du kanske vill ange OriginalMenuBar-variabeln som en offentlig variabel, så att en subrutin kan använda den i en annan subrutin, till exempel Auto_Close. Om variabeln deklareras och används på detta sätt återställs användarens tidigare menyrad till dess ursprungliga tillstånd. Följande exempelmakro återställer menyraden:
Public OriginalMenuBar as Object

Sub MenuBars_Capture()
   Set OriginalMenuBar = CommandBars.ActiveMenuBar
End Sub

Skapa en anpassad menyrad

Följande exempelkod skapar en anpassad menyrad med namnet My Command Bar:
Sub MenuBar_Create() Application.CommandBars.Add Name:="My command bar" End Sub

Det är också möjligt att skapa ett anpassat kommandofält med hjälp av argumentet Temporary:=True. Argumentet Temporary:=True gör att kommandofälten kan återställas automatiskt när Excel avslutas. I följande kod används argumentet Temporary:=True för att skapa ett anpassat fält :
Sub MenuBar_Create()
Application.CommandBars.Add Name:="My command bar", Temporary:=True
End Sub

Visa ett anpassat kommandofält

I följande exempel skapas och visas den anpassade menyraden My Custom Bar och sedan ersätts den inbyggda menyraden:
Sub MenuBar_Show()
Dim myNewBar As Object
   Set myNewBar = CommandBars.Add(Name:="Custom1", Position:=msoBarFloating)
   ' Innan du gör den anpassade menyraden synlig måste du aktivera den.
   ' När du aktiverar en menyrad läggs den till i listan med tillgängliga menyrader i
   ' dialogrutan Anpassa.
' Om du anger menyradsegenskapen till True ersätts den inbyggda menyraden.
   myNewBar.Enabled = True
   myNewBar.Visible = True
End Sub

Ta bort en anpassad menyrad

Följande exempelkod tar bort en anpassad menyrad med namnet Custom1:
Sub MenuBar_Delete()
   CommandBars("Custom1").Delete
End Sub

Dölja ett kommandofält

Följande exempelkod tar bort den inbyggda menyraden Chart från listan över tillgängliga menyrader:
Sub MenuBar_Display()
   CommandBars("Chart").Enabled = False
End Sub

Dölja ett kommandofält

Följande exempelkod tar bort den inbyggda menyraden Chart från listan över tillgängliga menyrader:
Sub MenuBar_Display()
   CommandBars("Chart").Enabled = True
End Sub

Återställa ett inbyggt kommandofält

Genom återställning av en menyrad återställs standardkontrollerna (för både menyer och menyalternativ). Följande exempelkod återställer den inbyggda menyraden Chart:
Sub MenuBar_Restore()
   CommandBars("Chart").Reset
End Sub
Obs! Det är bara möjligt att återställa inbyggda menyrader, inte anpassade.

Menyer

Vid återställning av en menyrad återställs standardkontrollerna (för både menyer och menyalternativ). Följande exempelkod återställer den inbyggda menyraden Chart:

Sub MenuBar_Restore()
   CommandBars("Chart").Reset
End Sub
Obs! Det är bara möjligt att återställa inbyggda menyrader, inte anpassade.

Lägga till en anpassad menykontroll i ett kommandofält

Följande exempelkod lägger till namnet på en meny som läggs till programmässigt på menyraden Worksheet. Genom den här koden läggs till exempel menynamnet New Menu till på menyraden Worksheet.

Obs! Den här menyn kan ges vilket namn som helst.
Sub Menu_Create()
Dim myMnu As Object
   Set myMnu = CommandBars("Worksheet menu bar").Controls. _
      Add(Type:=msoControlPopup, before:=3)
   With myMnu
   ' "&" anger en tilldelning av ett snabbkommando (Alt+M i detta fall).
      .Caption = "New &Menu"
   End With
End Sub

Inaktivera en menykontroll i ett kommandofält

En menykontroll som har inaktiverats visas nedtonad och är inte tillgänglig i ett kommandofält. Följande exempel inaktiverar New Menu-menyn:
Sub Menu_Disable()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = False
End Sub

Aktivera en menykontroll i ett kommandofält

Följande exempelkod aktiverar New Menu-menyn som inaktiverades i avsnittet "Inaktivera en menykontroll i ett kommandofält":
Sub Menu_Disable()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = True
End Sub

Ta bort en menykontroll i ett kommandofält

Följande kodexempel tar bort New Menu-menyn som skapades i avsnittet "Lägga till en anpassad menykontroll i ett kommandofält" från Worksheet-menyraden:
Sub Menu_Delete()
   CommandBars("Worksheet menu bar").Controls("New &Menu").Delete
End Sub

Återställa en menykontroll i ett kommandofält

Följande exempelkod återställer den inbyggda menyradenChart på menyraden Worksheet:
Sub Menu_Restore()
Dim myMnu As Object
   Set myMnu = CommandBars("Chart")
   myMnu.Reset
End Sub

Kommandon

Vilka ändringar som kan göras av ett kommando beror på kontrolltypen. I allmänhet är knappar aktiverade eller dolda. Redigeringsrutor, listrutor och kombinationsrutor ger fler möjligheter genom att du kan lägga till eller ta bort objekt från listan. Dessutom kan du bestämma vilken åtgärd som utförs genom att granska värdet av objekten du har valt från listan. Du kan ändra funktionen hos alla kontroller till en inbyggd eller anpassad funktion.

I följande tabell anges de vanligaste egenskaperna för en kontroll och metoderna för ändring av tillstånd, åtgärd eller innehåll för en kontroll:
Dölj tabellenVisa tabellen
Egenskap eller metodSyfte
Lägg tillLägger till ett kommando i ett kommandofält.
AddItemLägger till ett objekt i listan i en listruta eller kombinationsruta.
StyleAnger om en ikon eller beskrivning ska visas på en knapp.
OnActionAnger vilken procedur som ska köras när användaren ändrar kontrollens värde.
VisibleAnger om kontrollen är synlig eller dold.

Gör så här om du vill veta mer om menyer i Excel 2003 och Excel 2002:
  1. Starta Visual Basic Script Editor.
  2. Klicka på Hjälp om Microsoft Visual BasicHjälp-menyn.
  3. Skriv menyer i rutan Sökhjälp och tryck sedan på RETUR.
  4. Klicka på Lägga till och hantera menyrader och menyalternativ (Office).

Lägga till ett avgränsningsfält i en menykontroll

Följande exempelkod lägger till ett avgränsningsfält före kommandotWorksheetInsert-menyn:
Sub menuItem_AddSeparator()
   CommandBars("Worksheet menu bar").Controls("Insert") _
   .Controls("Worksheet").BeginGroup = True
End Sub
Obs! Om du vill ta bort ett avgränsningsfält anger du egenskapenBeginGroup som False.

Skapa en anpassad kommandokontroll på en meny

Följande exempelkod skapar ett nytt kommando med namnetCustom1Tools-menyn i Worksheet-menyfältet, och sedan körs makrot Code_Custom1 när du klickar på Custom1:
Sub menuItem_Create()
   With CommandBars("Worksheet menu bar").Controls("Tools")
      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Custom1"
      .Controls("Custom1").OnAction = "Code_Custom1"
   End With
End Sub

Markera en kommandokontroll

Följande exempelkod markerar kommandot Custom1 om det inte redan är markerat, och sedan tas markeringen bort om kommandot Custom1 väljs:
Sub menuItem_checkMark()
Dim myPopup as Object

   Set myPopup = CommandBars("Worksheet menu bar").Controls("Tools")
   If myPopup.Controls("Custom1").State = msoButtonDown Then
      ' Ta bort kryssmakeringen intill menyposten.
      myPopup.Controls("Custom1").State = msoButtonUp
      MsgBox "Custom1 is now unchecked"
      Else
        ' Lägg till kryssmakeringen intill menyposten.
         myPopup.Controls("Custom1").State = msoButtonDown
         MsgBox "Custom1 is now checked"
    End If
End Sub

Inaktivera en kommandokontroll i ett kommandofält

Följande exempelkod inaktiverar kommandotCustom1 som skapades på Tools-menyn i "Skapa en anpassad kommandokontroll på en meny":
Sub MenuItem_Disable()
Dim myCmd as Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
   myCmd.Controls("Custom1").Enabled = False
End Sub

Aktivera en kommandokontroll i ett kommandofält

Följande exempelkod aktiverar kommandotCustom1 som inaktiverades i avsnittet "Inaktivera en kommandokontroll i ett kommandofält":
Sub MenuItem_Enable()
Dim myCmd as Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
   myCmd.Controls("Custom1").Enabled = True
End Sub

Ta bort en kommandokontroll på en meny

Följande exempelkod tar bort kommandot Save från File-menyn:
Sub menuItem_Delete()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
   myCmd.Controls("Save").Delete
End Sub

Återställa en inbyggd kommandokontroll på en meny

För att återställa en kommandokontroll på en meny måste du känna till kontrollens ID-nummer. I "Returnera ett ID för en kommandofältskontroll" beskrivs hur man tar reda på ID-numret. Följande exempel tar bort och återställer kommandot Save som togs bort i "Ta bort en kommandokontroll på en meny":
Sub menuItem_Restore()
Dim myCmd As Object
   Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
   ' Id 3 refererar till menypostkontrollen Spara.
   myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5
End Sub

Undermenyer

Undermenyer visas vid sidan om den överordnade menyn när du klickar på ett kommando. Ett kommando som är en undermenykontroll har en liten svart pil till höger om kommandonamnet.

Lägga till en undermeny

Följande exempelkod lägger till en ny undermeny med namnet NewSubTools-menyn på Worksheet-menyraden:
Sub SubMenu_Create()
Dim newSub as Object
   Set newSub = CommandBars("Worksheet menu bar").Controls("Tools")
   With newSub
      .Controls.Add(Type:=msoControlPopup, Before:=1).Caption="NewSub"
   End With
End Sub

Lägga till ett kommando på en undermeny

Följande exempelkod lägger till ett nytt kommando med namnet SubItem1NewSub-undermenyn, och sedan körs makrot Code_SubItem1 när du klickar på SubItem1:
Sub SubMenu_AddItem()
Dim newSubItem as Object
   Set newSubItem = CommandBars("Worksheet menu bar") _
   .Controls("Tools").Controls("NewSub")
   With newSubItem
      .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "SubItem1"
      .Controls("SubItem1").OnAction = "Code_SubItem1"
   End With
End Sub

Inaktivera en kommandokontroll på en undermeny

Följande exempelkod inaktiverar kommandot SubItemsom skapades i "Lägga till ett kommando på en undermeny":

Sub SubMenu_DisableItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Enabled = False
End Sub


Följande exempel aktiverar samma SubItem-kommando:
Sub SubMenu_DisableItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Enabled = True
End Sub

Ta bort ett kommando på en undermeny

Följande exempel tar bort kommandot SubItem1 som skapades på NewSub-undermenyn i "Lägga till ett kommando på en undermeny":
Sub SubMenu_DeleteItem()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Controls("SubItem1").Delete
End Sub

Inaktivera en undermenykontroll

Följande exempelkod inaktiverar NewSub-undermenyn som skapades på Tools-menyn i "Lägga till en undermeny":
Sub SubMenu_DisableSub()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Enabled = False
End Sub
Obs! Om du vill aktivera den inaktiverade kontrollen anger du egenskapenEnabled som True.

Ta bort en undermenykontroll

Följande exempelkod tar bort NewSub-undermenyn som skapades på Tools-menyn i "Lägga till en undermeny":
Sub SubMenu_DeleteSub()
   CommandBars("Worksheet menu bar").Controls("Tools") _
   .Controls("NewSub").Delete
End Sub

Snabbmenyrader

En snabbmeny är ett flytande kommandofält som visas när användaren högerklickar på ett objekt. Snabbmenyraden kan innehålla samma kontrolltyper som kommandofältet, och kontrollerna fungerar på samma sätt som kontrollerna i ett kommandofält. Det går inte att skapa eller ändra snabbmenyer från programgränssnittet i de flesta program. Därför måste du skapa och ändra snabbmenyerna vid körningstillfället.

Gör så här om du vill veta mer om snabbmenyer i Excel 2002 och Excel 2003:
  1. Starta Visual Basic Script Editor.
  2. Klicka på Hjälp om Microsoft Visual BasicHjälp-menyn.
  3. Skriv shortcut i rutan Sökhjälp och tryck sedan på RETUR.
  4. Klicka på Adding and Displaying Shortcut Menus.

Skapa en ny snabbmenyrad

Följande exempelkod skapar en ny snabbmenyrad med namnet myShortcutBar:

Sub Shortcut_Create()
Dim myShtCtBar as Object
   Set myShtCtBar = CommandBars.Add(Name:="myShortcutBar", _
   Position:=msoBarPopup)
   ? Detta visar genvägsmenyraden.
   ? 200, 200 refererar till skärmpositionen i bildpunkter som x- och y-koordinater.
   myShtCtBar.ShowPopup 200,200
End Sub

Obs! Snabbmenyraden är tom eftersom inga kontroller (menyalternativ eller undermenyer) har lagts till.

Snabbmenyer

Snabbmenyrader visas när du använder höger musknapp för att klicka på ett viss Excel-objekt. Excel har många snabbmenyrader med en mängd olika menyer. Det är också möjligt att skapa anpassade snabbmenyrader och anpassa de inbyggda menyraderna.

Skapa ett kommando på en snabbmenyrad

Följande exempelkod skapar ett nytt menykommando med namnetItem1 på snabbmenyraden myShortcutBar och kör makrot Code_Item1 när du klickar på Item1:
Sub Shortcut_AddItem()
Dim myBar as Object
   Set myBar = CommandBars("myShortcutBar")
   With myBar
      .Controls.Add (Type:=msoControlButton, before:=1).Caption = "Item1"
      .Controls("Item1").OnAction = "Code_Item1"
   End With
   myBar.ShowPopup 200,200
End Sub

Inaktivera en kommandokontroll på en snabbmenyrad

Följande exempelkod inaktiverar kommandot Item1 som skapades i "Skapa ett kommando på en snabbmeny":
Sub Shortcut_DisableItem()
   Set myBar = CommandBars("myShortcutBar")
   myBar.Controls("Item1").Enabled = False
   myBar.ShowPopup 200,200
End Sub
Obs! Om du vill aktivera den inaktiverade posten anger du egenskapenEnabled som True.

Ta bort ett kommando på en snabbmenyrad

Följande exempelkod tar bort menykommandot Item1 på snabbmenyraden myShortcutBar:
Sub Shortcut_DeleteItem()
   Set myBar = CommandBars("myShortcutBar")
   myBar.Controls("Item1").Delete
   myBar.ShowPopup 200,200
End Sub

Ta bort en snabbmenyrad

Om du tar bort snabbmenyraden tar du också bort alla objekt. Det går inte att återställa en borttagen anpassad menyrad. För att återställa den måste du återskapa den och alla menyobjekt och undermenyer.

Följande exempelkod tar bort snabbmenyraden myShortCutBar som skapades i "Skapa ett kommando på en snabbmenyrad":
Sub Shortcut_DeleteShortCutBar()
   CommandBars("MyShortCutBar").Delete
End Sub

Återställa ett kommando på en inbyggd snabbmenyrad

Följande exempelkod återställer standardkommandona på kalkylbladets snabbmenyrad Cell:
Sub Shortcut_RestoreItem()
   CommandBars("Cell").Reset
End Sub

Undermenyer på snabbmenyer

Du kan skapa undermenyer på snabbmenyrader. Undermenyer visas vid sidan av den överordnade menyn när du klickar på en kommandokontroll. Ett kommando som är en undermenykontroll har en liten svart pil till höger om namnet.

Skapa en ny undermeny på en snabbmenyrad

Följande exempel lägger till en ny undermeny med namnet NewSub på snabbmenyn Cell i kalkylbladet:
Sub ShortcutSub_Create()
   CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=1) _
   .Caption = "NewSub"
    ' Detta visar genvägsmenyraden.
    ' 200, 200 refererar till skärmpositionen i bildpunkter som x- och y-koordinater.
   CommandBars("Cell").ShowPopup 200, 200
End Sub
Obs! Undermenyn är tom eftersom inga menyobjekt har lagts till.

Skapa en kommandokontroll på en undermeny som finns på en snabbmenyrad

Följande makro lägger till kommandot SubItem1 på undermenyn NewSub som skapades på snabbmenyn Cell och kör sedan makrot Code_SubItem1 när du klickar på SubItem1:
Sub ShortcutSub_AddItem()
Dim newSubItem as Object
   Set newSubItem = CommandBars("Cell").Controls("NewSub?)
   With newSubItem
      .Controls.Add(Type:=msoControlButton, before:=1).Caption = "subItem1"
      ' Detta kör makrot subItem1_Code macro när någon klickar på subItem1.
      .Controls("subItem1").OnAction = "Code_subItem1"
   End With
   ' Detta visar cellgenvägsmenyraden.
   ' 200, 200 refererar till skärmpositionen i bildpunkter som x- och y-koordinater
   CommandBars("Cell").ShowPopup 200, 200
End Sub

Inaktivera en kontroll för ett undermenyalternativ på en snabbmeny

Följande exempelkod inaktiverar kommandot SubItem1NewSub-undermenyn:
Sub ShortcutSub_DisableItem()
   CommandBars("Cell").Controls("NewSub") _
   .Controls("subItem1").Enabled = False
   ' Detta visar cellgenvägsmenyraden.
   ' 200, 200 refererar till skärmpositionen i bildpunkter som x- och y-koordinater.
   CommandBars("Cell").ShowPopup 200, 200
End Sub
Obs! Om du vill aktivera ett inaktiverat alternativ anger du egenskapen Enabled som True.

Ta bort en kontroll för ett undermenyalternativ på en snabbmeny

Följande exempel tar bort kommandot SubItem1NewSub-undermenyn:
Sub ShortcutSub_DeleteItem()
   CommandBars("Cell").Controls("NewSub").Controls("subItem1").Delete
   ' Detta visar cellgenvägsmenyraden.
   ' 200, 200 refererar till skärmpositionen i bildpunkter som x- och y-koordinater.
   CommandBars("Cell").ShowPopup 200, 200
End Sub

Inaktivera en undermenykontroll på en snabbmeny

Följande exempelkod inaktiverar NewSub-undermenyn på snabbmenyraden Cell:
Sub ShortcutSub_DisableSub()
   CommandBars("Cell").Controls("NewSub").Enabled = False
   ' Detta visar cellgenvägsmenyraden.
   ' 200, 200 refererar till skärmpositionen i bildpunkter som x- och y-koordinater.
   CommandBars("Cell").ShowPopup 200, 200
End Sub
Obs! Om du vill aktivera ett inaktiverat alternativ anger du egenskapen Enabled som True.

Ta bort en undermenykontroll på en snabbmeny

Följande exempelkod tar bort NewSub-undermenyn som skapades på snabbmenyraden Cell:
Sub ShortcutSub_DeleteSub()
   CommandBars("Cell").Controls("NewSub").Delete
   ' Detta visar cellgenvägsmenyraden.
   ' 200, 200 refererar till skärmpositionen i bildpunkter som x- och y-koordinater.
   CommandBars("Cell").ShowPopup 200, 200
End Sub

Hitta mer information

Följande resurser innehåller mer information om anpassning av menyer och menyrader i Excel.

Objektgranskning

Objektgranskning innehåller en fullständig lista över alla egenskaper och metoder för ett visst kommando. Så här hittar du informationen: växla till Visual Basic Editor (tryck på ALT+F11), klicka på ObjektgranskningView-menyn (eller tryck på F2), skriv in kontrollens namn i rutan Sök och tryck på RETUR eller klicka på Sök.

Microsoft Knowledge Base

Microsoft Knowledge Base är en primär informationskälla om Microsoft-produkter för Microsofts supporttekniker. Microsoft Knowledge Base är också tillgänglig för Microsofts kunder. Denna omfattande databas innehåller artiklar med teknisk information om Microsofts produkter, listor över dokumenterade korrigeringsfiler, dokumentationsfel och svar på vanliga tekniska supportfrågor.

Du får tillgång till Microsoft Knowledge Base genom att besöka följande Microsoft-webbplats och följa instruktionerna på sidan:
http://support.microsoft.com

Egenskaper

Artikel-id: 830502 - Senaste granskning: den 20 februari 2006 - Revision: 4.1
Informationen i denna artikel gäller:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
Nyckelord: 
kbhowtomaster KB830502

Ge feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com