Innehållsförteckning:
Video: Grundläggande Excel: 4. Lär dig arbeta med talformat 2024
Innan Excel 2007 använde VBA-programmerare CommandBar-objektet för att skapa anpassade menyer, anpassade verktygsfält och anpassade genvägs (högerklicka) menyer. Början med Excel 2007 är CommandBar-objektet i ett ganska udda läge. Om du skriver kod för att anpassa en meny eller en verktygsfält, avbryter Excel den koden och ignorerar många av dina kommandon.
I stället för att visa din genomtänkta gränssnittsförbättring, dumpar Excel 2007 (som senare versioner) helt enkelt dina anpassade menyer och verktygsfält i en fångst-allt Ribbon-flik med namnet Add-Ins.
Anpassning av meny och verktygsfält hamnar i Add-Ins → Menykommandon eller Add-Ins → Anpassade verktygsfältgrupper. Men anpassning av genvägsmenyer (som också använder CommandBar-objektet) fungerar fortfarande som det alltid har - bra sorts.
Bottom line? CommandBar-objektet är inte särskilt användbart längre, men det är fortfarande det enda sättet att anpassa genvägsmenyer.
Lägga till ett nytt objekt på snabbmenyn Cell
Nedan hittar du exempelkod som lägger till ett nytt objekt i genvägmenyn som visas när du högerklickar på en cell. Du ska kunna anpassa dessa exempel till dina behov.
Du kan förbättra det här verktyget Change Case lite genom att göra det tillgängligt från snabbmenyn Cell.
AddToShortcut-proceduren lägger till ett nytt menyalternativ på Cell-genvägmenyn. Du kan anpassa den till att peka på dina egna makron genom att ändra egenskaperna för bildtext och pååtkomst av objektet NewControl.
Sub AddToShortCut () Dimbar som CommandBar Dim NewControl som CommandBarButton DeleteFromShortcut Set Bar = Application. CommandBars ("Cell") Ange NewControl = Bar. Kontroller. Lägg till _ (Typ: = msoControlButton, ID: = 1, _ Temporary: = True) Med NewControl. Caption = "& Change Case". OnAction = "ChangeCase". Style = msoButtonIconAndCaption End With End Sub
När du ändrar en genvägsmeny förblir ändringen gällande tills du startar om Excel. Med andra ord, återställda genvägsmenyer återställs inte när du stänger arbetsboken som innehåller VBA-koden. Om du skriver kod för att ändra en genvägsmeny skriver du därför alltid kod för att ändra effekten av din modifiering.
DeleteFromShortcut-proceduren tar bort det nya menyalternativet från snabbmenyn Cell:
Sub DeleteFromShortcut () Vid fel fortsätt nästa applikation. Command (”Cell”). Kontroller _ ("& Ändra fall"). Radera slutdel
Detta visar hur det nya menyalternativet som visas efter att du högerklickar på en cell.
Cellmenyns meny visar ett anpassat menyalternativ: Ändra fall.Det första faktiska kommandot efter deklarationen av ett par variabler kallar proceduren DeleteFromShortcut. Detta uttalande säkerställer att endast ett menyalternativ för Change Case visas på genvägsmenyn. Prova att kommentera den raden (lägg på en apostrof vid början av raden) och kör proceduren några gånger - men bli inte borttagen!
Högerklicka på en cell, och du kan se flera instanser av menyn Ändra fall. Bli av med alla poster genom att köra DeleteFromShortcut flera gånger (en gång för varje extra menyobjekt).
Slutligen behöver du ett sätt att lägga till genvägs menyalternativ när arbetsboken öppnas och för att radera menyalternativet när arbetsboken är stängd. Att göra detta är lätt. Lägg bara till dessa två händelseförfaranden till ThisWorkbook-kodmodulen:
Privat Sub Workbook_Open () Ring AddToShortCut Slut Sub Private Workbook_BeforeClose (Avbryt som booleska) Ring DeleteFromShortcut End Sub
Arbetsboken öppnas när arbetsboken öppnas, och Workbook_BeforeClose-proceduren körs innan arbetsboken är stängd. Precis vad läkaren beställde.
Vad skiljer sig i Excel 2013 och Excel 2016?
Om du har använt VBA för att arbeta med genvägsmenyer i Excel 2007 eller tidigare, måste du vara medveten om en signifikant förändring.
Tidigare, om din kod ändrade en genvägsmeny, var ändringen gällande för alla arbetsböcker. Om du till exempel lägger till ett nytt objekt i menyn Mobil högerklicka, visas det nya objektet när du högerklickade på en cell i någon arbetsbok (plus andra arbetsböcker som du öppnar senare). Med andra ord gjordes genvägsmodifikationer på applikationen -nivån.
Excel 2013 och Excel 2016 använder ett enda dokumentgränssnitt, och det påverkar genvägsmenyer. Ändringar som du gör till genvägsmenyer påverkar endast det aktiva arbetsboksfönstret. När du kör koden som ändrar snabbmenyn, kommer genvägsmenyn för andra fönster än det aktiva fönstret inte att ändras. Det här är en radikal avvikelse från hur sakerna brukade fungera.
En annan twist: Om användaren öppnar en arbetsbok (eller skapar en ny arbetsbok) när det aktiva fönstret visar den modifierade genvägmenyn, visar den nya arbetsboken också den ändrade genvägsmenyn. Med andra ord visar nya fönster samma genvägsmenyer som fönstret som var aktivt när de nya fönstren öppnades.
Nedre raden: Om du öppnade en arbetsbok eller lägga till de ändrade genvägsmenyerna tidigare kunde du vara säker på att de ändrade genvägsmenyerna skulle vara tillgängliga i alla arbetsböcker. Du har inte längre den försäkringen.