Hur man anpassar Excel 2016 genvägsmenyer i VBA

Före Excel 2007 använde VBA-programmerare CommandBar-objektet för att skapa anpassade menyer, anpassade verktygsfält och anpassade genvägsmenyer (högerklicka). Från och med Excel 2007 är CommandBar-objektet i en ganska udda position. Om du skriver kod för att anpassa en meny eller ett verktygsfält, fångar Excel upp den koden och ignorerar många av dina kommandon.

Istä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 sammanfattande menyflik som heter Add-Ins.

Meny- och verktygsfältsanpassningar hamnar i gruppen Tillägg → Menykommandon eller gruppen Tillägg → Anpassade verktygsfält. Men att anpassa genvägsmenyer (som också använder CommandBar-objektet) fungerar fortfarande som det alltid har gjort - ja, typ.

Slutsats? 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 till snabbmenyn för cell

Nedan hittar du exempelkod som lägger till ett nytt objekt till genvägsmenyn som visas när du högerklickar på en cell. Du bör kunna anpassa dessa exempel efter dina behov.

Du kan förbättra verktyget Change Case lite genom att göra det tillgängligt från snabbmenyn Cell.

Proceduren AddToShortcut lägger till ett nytt menyalternativ till genvägsmenyn för cell. Du kan anpassa den för att peka på dina egna makron genom att ändra egenskaperna Caption och OnAction för objektet som heter NewControl.

Sub AddToShortCut()
  Dimbar som kommandofält
  Dim NewControl As CommandBarButton
  DeleteFromShortcut
  Set Bar = Application.CommandBars(“Cell”)
  Set NewControl = Bar.Controls.Add _
     (Typ:=msoControlButton, ID:=1, _
     tillfälligt:=Sant)
  Med NewControl
    .Caption = "&Ändra skiftläge"
    .OnAction = "ChangeCase"
    .Style = msoButtonIconAndCaption
  Sluta med
Avsluta Sub

När du ändrar en genvägsmeny förblir den ändringen i kraft tills du startar om Excel. Med andra ord, ändrade genvägsmenyer återställs inte sig själva när du stänger arbetsboken som innehåller VBA-koden. Därför, om du skriver kod för att ändra en genvägsmeny, skriver du nästan alltid kod för att vända effekten av din modifiering.

Proceduren DeleteFromShortcut tar bort det nya menyalternativet från snabbmenyn Cell:

Sub DeleteFromShortcut()
  Vid fel Resume Next
  Application.CommandBars(“Cell”).Kontroller _
    ("&Ändra skiftläge"). Ta bort
Avsluta Sub

Detta visar hur det nya menyalternativet visas efter att du högerklickar på en cell.

Hur man anpassar Excel 2016 genvägsmenyer i VBA

Genvägsmenyn för cell som visar ett anpassat menyalternativ: Ändra skiftläge.

Det första faktiska kommandot efter deklarationen av ett par variabler anropar DeleteFromShortcut-proceduren. Detta uttalande säkerställer att endast ett menyalternativ Ändra fall visas på snabbmenyn Cell. Försök att kommentera den raden (lägg en apostrof i början av raden) och kör proceduren några gånger - men låt dig inte ryckas med!

Högerklicka på en cell så kan du se flera instanser av menyalternativet Ändra skiftläge. Bli av med alla poster genom att köra DeleteFromShortcut flera gånger (en gång för varje extra menyalternativ).

Slutligen behöver du ett sätt att lägga till genvägsmenyobjektet när arbetsboken öppnas och att ta bort menyalternativet när arbetsboken är stängd. Att göra detta är lätt. Lägg bara till dessa två händelseprocedurer till ThisWorkbook-kodmodulen:

Privat underarbetsbok_Öppen()
Ring AddToShortCut
Avsluta Sub
Privat underarbetsbok_BeforeClose(Avbryt som boolesk)
Ring DeleteFromShortcut
Avsluta Sub

Proceduren Workbook_Open körs när arbetsboken öppnas och Workbook_BeforeClose-proceduren körs innan arbetsboken stängs. Precis vad läkaren beordrade.

Vad är skillnaden 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 betydande förändring.

Tidigare, om din kod ändrade en genvägsmeny, gällde den ändringen för alla arbetsböcker. Om du till exempel lade till ett nytt objekt till högerklicksmenyn för cell, skulle det nya objektet visas när du högerklickade på en cell i en arbetsbok (plus andra arbetsböcker som du öppnar senare). Med andra ord gjordes genvägsmenyändringar på applikationsnivå .

Excel 2013 och Excel 2016 använder ett enda dokumentgränssnitt, och det påverkar genvägsmenyer. Ändringar som du gör i genvägsmenyer påverkar endast det aktiva arbetsboksfönstret. När du kör koden som ändrar genvägsmenyn ändras inte genvägsmenyn för andra fönster än det aktiva fönstret. Detta är ett radikalt avsteg från hur saker och ting fungerade.

En annan twist: Om användaren öppnar en arbetsbok (eller skapar en ny arbetsbok) när det aktiva fönstret visar den ändrade genvägsmenyn, visar den nya arbetsboken också den ändrade genvägsmenyn. Med andra ord visar nya fönster samma genvägsmenyer som det fönster som var aktivt när de nya fönstren öppnades.

Slutsats: Tidigare, om du öppnade en arbetsbok eller ett tillägg som ändrade genvägsmenyer, 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 garantin.

Skapa anpassade genvägsmenyer i Access 2007

Makrodesignfönstret är annorlunda i Access 2007 jämfört med senare versioner, så utöka följande avsnitt för att följa med om du använder Access 2007.

Steg 1 för Access 2007: Skapa en makrogrupp som innehåller menykommandon

I det här steget skapar du en makrogrupp, vars varje makro kommer att vara ett separat kommando på din snabbmeny.

Vad är en makrogrupp?

En makrogrupp är ett enda makroobjekt som innehåller två eller flera oberoende makron. De enskilda makrona identifieras genom att skriva ett namn för varje makro i kolumnen Makronamn. I följande illustration  är Macro3  en makrogrupp. NotFoundMsg  och  FoundMsg  är individuella makron inom gruppen, varje makro består av två makroåtgärder.

Exempel på makrogrupp

Obs:  Kolumnen  Makronamn  är dold som standard. Om du vill visa   kolumnen  Makronamn  klickar du på  Makronamn på fliken Design  i  gruppen Visa/dölj .

  1. På  fliken Skapa  , i  gruppen Annat  , klicka på  Makro . Om det här kommandot inte är tillgängligt klickar du på pilen under antingen  knappen Module  eller  Class Module  och klickar sedan på  Makro .

  2. På  fliken Design  , i  gruppen Visa/dölj  , klicka på  Makronamn  för att visa   kolumnen Makronamn .

  3. För varje kommando som du vill ha på din anpassade genvägsmeny:

    • I  kolumnen Makronamn  anger du texten som du vill visa på snabbmenyn (till exempel "Skriv ut rapport" eller "Spara").

      Obs:  För att skapa en åtkomstnyckel så att du kan använda tangentbordet för att välja kommandot, skriv ett och-tecken (&) före bokstaven som du vill ska vara åtkomstnyckeln i kommandonamnet (till exempel "&Spara"). Detta brev kommer att vara understruket på menyn.
    • I  kolumnen Åtgärd  väljer du den första åtgärd du vill utföra när du klickar på kommandot på genvägsmenyn.

    • Om det finns fler åtgärder som du vill ska utföras när du väljer det här kommandot, lägg till dem på de efterföljande raderna. Lämna cellen Makronamn  tom för varje efterföljande åtgärd  .

      Obs!  För att skapa en rad mellan två menykommandon, skriv ett bindestreck (-) i  kolumnen Makronamn  mellan lämpliga menykommandon.
  4. Spara och namnge makrot, till exempel   mcrShortcutMenuCommands .

Följande illustration visar ett exempel på en makrogrupp för en anpassad meny eller genvägsmeny.

En menymakrogrupp i designvy

Steg 2 för Access 2007: Skapa ett makro som skapar menyn

Det här steget kan verka överflödigt, men för att skapa genvägsmenyn från makrogruppen som du skapade i steg 1 måste du skapa ett andra makro som innehåller makroåtgärden   AddMenu . Detta makro kallas ibland "menymakrot".

  1. På  fliken Skapa  , i  gruppen Annat  , klicka på  Makro . Om det här kommandot inte är tillgängligt klickar du på pilen under antingen  knappen Module  eller  Class Module  och klickar sedan på  Makro .

  2. På den första raden i makrot, välj  AddMenu  i  åtgärdslistan  .

  3. Under  Åtgärdsargument i  rutan Menynamn  skriver du namnet på menyn (till exempel "Rapportkommandon"). Detta argument krävs inte, men rekommenderas om du i steg 3 planerar att lägga till menyn på en menyflik (som fliken  Tillägg  i ett formulär eller en rapport). Om menyn läggs till som en genvägsmeny i steg 3   ignoreras menynamnsargumentet .

  4. I  rutan Menymakronamn  anger du namnet på makrot som du skapade i steg 1.

  5. Spara och namnge makrot, till exempel  mcrAddShortcutMenu .

Följande illustration visar ett exempel på ett menymakro som skapar menyn vi designade i steg 1.

Ett menymakro i designvy

Steg 3 för Access 2007: Bifoga menyn till en kontroll, formulär, rapport eller databas

Beroende på var du vill att menyn ska visas, använd en eller flera av följande procedurer.

  • Lägg till menyn på fliken Tillägg i ett formulär eller en rapport

    Använd den här proceduren om du vill att menyn ska visas på fliken  Tillägg  för ett specifikt formulär eller rapport, som visas i följande illustration:

    Fliken Tillägg som innehåller en anpassad meny

    1. I navigeringsfönstret högerklickar du på formuläret eller rapporten där du vill att menyn ska visas och klickar sedan på  Designvy .

    2. På  fliken Design  , i   gruppen  Visa/dölj , klickar du på Egenskapsblad .

    3. Välj hela objektet genom att välja  Formulär  eller  Rapport  från listan överst i egenskapsbladets uppgiftspanel.

    4. På  fliken Annat  på egenskapsbladet, i  egenskapsrutan Genvägsmeny  , skriv namnet på makrot som du skapade i steg 2 (i det här exemplet "mcrAddShortcutMenu").

      Nästa gång du öppnar formuläret eller rapporten,  visas fliken Tillägg  i menyfliksområdet. Klicka på fliken för att se menyn.

      Mer information om tekniker för anpassning av band, som att lägga till anpassade flikar eller dölja standardflikarna, finns i artikeln  Skapa ett anpassat menyfliksställe i Access .

      The Ribbon är en komponent i Microsoft Office Fluent-användargränssnittet.

  • Lägg till menyn som en genvägsmeny för ett formulär, rapport eller kontroll

    Använd den här proceduren om du vill att menyn ska visas när du högerklickar på ett specifikt formulär, rapport eller kontroll, som visas i följande illustration:

    En enkel genvägsmeny

    1. I navigeringsfönstret högerklickar du på formuläret eller rapporten där du vill att genvägsmenyn ska visas och klickar sedan på  Designvy .

    2. På  fliken Design  , i   gruppen  Visa/dölj , klickar du på Egenskapsblad .

    3. Välj kontrollen eller objektet som du vill bifoga genvägsmenyn till.

      Obs!  För att markera hela objektet, välj  Formulär  eller  Rapport  från listan överst i egenskapsbladets aktivitetspanel.

    4.  Skriv namnet på makrot som du skapade i steg 2 (i det här exemplet "mcrAddShortcutMenu") på fliken Annat på egenskapsbladet i  egenskapsrutan  Genvägsmenyfält  .

  • Lägg till menyn som en global genvägsmeny

    Denna procedur ersätter alla standardgenvägsmenyer i den aktuella databasen. Anpassade genvägsmenyer som du har bifogat till specifika formulär, rapporter eller kontroller påverkas inte.

    1. Klicka på  Microsoft Office-knappen  och klicka sedan på  Åtkomstalternativ .

    2. Klicka på Aktuell databas i   dialogrutan  Åtkomstalternativ .

    3.  Skriv namnet på makrot som du skapade i steg 2 (i det här exemplet, "mcrAddShortcutMenu") i  rutan Genvägsmeny under  Alternativ för menyfliksfält och verktygsfält .

  • Anpassade genvägsmenyer ersätter standardgenvägsmenyerna för objekten de är kopplade till. Om du vill behålla vissa Access-kommandon att använda på dessa menyer, använd  åtgärden RunCommand  för att placera kommandona i makrogrupperna för menyerna du vill ha dem i.

  • En anpassad genvägsmeny som är kopplad till en kontroll ersätter alla andra anpassade genvägsmenyer som är definierade i databasen. En anpassad genvägsmeny som är kopplad till ett formulär eller rapport ersätter en anpassad global genvägsmeny.

  • När du anger ett menymakro för ett formulär eller rapport eller för databasen, kör Access det här menymakrot närhelst formuläret, rapporten eller databasen öppnas. Om du gör ändringar i menymakrot eller makrogruppen som definierar dess kommandon medan formuläret, rapporten eller databasen är öppen, måste du stänga formuläret, rapporten eller databasen och öppna den igen för att se ändringarna.

  • För att skapa en undermeny, följ steg 1 för att skapa en separat makrogrupp som bara innehåller undermenykommandon. Följ sedan steg 1 igen för att definiera kommandona för menyn på högre nivå. Lägg till undermenyn som ett objekt i makrogruppen på högre nivå genom att använda   makroåtgärden Lägg till meny . Följande illustration visar makrogruppen för en meny som innehåller en undermeny och visar sedan den resulterande genvägsmenyn. Den tredje raden i makrogruppen skapar   undermenyn Exportera till... ( mcrSubMenu ).

    En genvägsmeny som innehåller en undermeny

    Du kan skapa flera nivåer av undermenyer genom att använda  AddMenu-  åtgärder i makrogrupperna för varje menynivå. Se till att ange ett värde för  argumentet Menynamn  för varje  AddMenu-  åtgärd, annars kommer undermenyn att visas som en tom rad i menyn på högre nivå.

  • Makrovillkor stöds endast i menymakrot på översta nivån. Med andra ord kan du använda ett villkor i ett menymakro för att avgöra om en viss meny eller genvägsmeny kommer att visas, men bara för menyerna på översta nivån. Du kan inte använda villkor för att visa eller dölja kommandon eller undermenyer på menyerna. Du kan också använda ett villkor för att dölja eller visa en anpassad genvägsmeny eller global genvägsmeny.

  • Alternativt kan menymakrot som du skapar i steg 2 vara en del av en makrogrupp. Om du till exempel har flera genvägsmenyer för olika objekt eller kontroller kan du skapa ett enda makroobjekt som innehåller alla nödvändiga menymakron. Se till att visa  kolumnen Makronamn  och skriv ett unikt namn för varje makro. I steg 3 använder du följande notation för att referera till makrot:  makrogruppnamn.makronamn . Till exempel,  mcrAddShortcutMenus.AddMenu2 .


Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows Microsoft Word öppnar filer i skrivskyddat läge, vilket gör det omöjligt att redigera dem? Oroa dig inte, metoderna finns nedan

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Så här åtgärdar du fel vid utskrift av felaktiga Microsoft Word-dokument Fel vid utskrift av Word-dokument med ändrade teckensnitt, röriga stycken, saknad text eller förlorat innehåll är ganska vanligt. Men gör det inte

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Om du har använt pennan eller överstrykningspennan för att rita på dina PowerPoint-bilder under en presentation, kan du spara ritningarna till nästa presentation eller radera dem så att nästa gång du visar den börjar du med rena PowerPoint-bilder. Följ dessa instruktioner för att radera ritningar med penna och överstrykningspenna: Radera linjer ett på […]

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteket innehåller CSS-filer, XSL-filer (Extensible Stylesheet Language) och bilder som används av fördefinierade mallsidor, sidlayouter och kontroller i SharePoint 2010. För att hitta CSS-filer i stilbiblioteket på en publiceringswebbplats: Välj Webbplatsåtgärder→Visa Allt webbplatsinnehåll. Innehållet på webbplatsen visas. Style-biblioteket ligger i […]

Formatera siffror i tusentals och miljoner i Excel-rapporter

Formatera siffror i tusentals och miljoner i Excel-rapporter

Överväldiga inte din publik med gigantiska siffror. I Microsoft Excel kan du förbättra läsbarheten för dina instrumentpaneler och rapporter genom att formatera dina siffror så att de visas i tusentals eller miljoner.

Hur man delar och följer SharePoint-webbplatser

Hur man delar och följer SharePoint-webbplatser

Lär dig hur du använder SharePoints sociala nätverksverktyg som låter individer och grupper kommunicera, samarbeta, dela och ansluta.

Hur man konverterar datum till Julian-format i Excel

Hur man konverterar datum till Julian-format i Excel

Julianska datum används ofta i tillverkningsmiljöer som en tidsstämpel och snabbreferens för ett batchnummer. Denna typ av datumkodning tillåter återförsäljare, konsumenter och serviceagenter att identifiera när en produkt tillverkades och därmed produktens ålder. Julianska datum används också i programmering, militären och astronomi. Annorlunda […]

Hur man skapar en Access Web App

Hur man skapar en Access Web App

Du kan skapa en webbapp i Access 2016. Så vad är en webbapp egentligen? Tja, webben betyder att den är online, och appen är bara en förkortning för "applikation". En anpassad webbapp är en onlinedatabasapplikation som nås från molnet med en webbläsare. Du bygger och underhåller webbappen i skrivbordsversionen […]

Snabbstartsfält i SharePoint 2010

Snabbstartsfält i SharePoint 2010

De flesta sidor i SharePoint 2010 visar en lista med navigeringslänkar i snabbstartsfältet till vänster på sidan. Snabbstartsfältet visar länkar till utvalt webbplatsinnehåll som listor, bibliotek, webbplatser och publiceringssidor. Snabbstartsfältet innehåller två mycket viktiga länkar: Länken Allt webbplatsinnehåll: […]

Vad betyder lösarens felmeddelanden i Excel?

Vad betyder lösarens felmeddelanden i Excel?

För enkla problem hittar Solver i Excel vanligtvis snabbt de optimala Solver-variabelvärdena för objektivfunktionen. Men i vissa fall har Solver problem med att hitta Solver-variabelvärdena som optimerar objektivfunktionen. I dessa fall visar Solver vanligtvis ett meddelande eller ett felmeddelande som beskriver eller diskuterar problemet som […]