Sådan tilpasser du Excel 2016-genvejsmenuer i VBA

Før Excel 2007 brugte VBA-programmører CommandBar-objektet til at oprette brugerdefinerede menuer, brugerdefinerede værktøjslinjer og brugerdefinerede genvejsmenuer (højreklik). Fra og med Excel 2007 er CommandBar-objektet i en ret underlig position. Hvis du skriver kode for at tilpasse en menu eller en værktøjslinje, opsnapper Excel denne kode og ignorerer mange af dine kommandoer.

I stedet for at vise din gennemtænkte grænsefladeforbedring, dumper Excel 2007 (ligesom senere versioner) blot dine tilpassede menuer og værktøjslinjer ind i en fane på båndet med navnet Add-Ins.

Menu- og værktøjslinjetilpasninger ender i Tilføjelsesprogrammer → Menukommandoer eller Tilføjelsesprogrammer → Brugerdefinerede værktøjslinjer. Men at tilpasse genvejsmenuer (som også bruger CommandBar-objektet) fungerer stadig, som det altid har gjort - ja, sådan set.

Bundlinie? CommandBar-objektet er ikke særlig nyttigt længere, men det er stadig den eneste måde at tilpasse genvejsmenuer på.

Tilføjelse af et nyt element til celle-genvejsmenuen

Nedenfor finder du eksempelkode, der tilføjer et nyt element til genvejsmenuen, der vises, når du højreklikker på en celle. Du bør være i stand til at tilpasse disse eksempler til dine behov.

Du kan forbedre værktøjet Change Case en smule ved at gøre det tilgængeligt fra Celle-genvejsmenuen.

AddToShortcut-proceduren tilføjer et nyt menupunkt til Celle-genvejsmenuen. Du kan tilpasse den til at pege på dine egne makroer ved at ændre egenskaberne Caption og OnAction for objektet med navnet NewControl.

Sub AddToShortCut()
  Dim Bar Som CommandBar
  Dæmp NewControl As CommandBarButton
  Slet Fra genvej
  Set Bar = Application.CommandBars(“Cell”)
  Indstil NewControl = Bar.Controls.Add _
     (Type:=msoControlButton, ID:=1, _
     midlertidig:=True)
  Med NewControl
    .Caption = "&Skift sag"
    .OnAction = "ChangeCase"
    .Style = msoButtonIconAndCaption
  Slut med
Slut Sub

Når du ændrer en genvejsmenu, forbliver denne ændring i kraft, indtil du genstarter Excel. Med andre ord nulstilles ændrede genvejsmenuer ikke sig selv, når du lukker projektmappen, der indeholder VBA-koden. Derfor, hvis du skriver kode for at ændre en genvejsmenu, skriver du næsten altid kode for at vende effekten af ​​din ændring.

DeleteFromShortcut-proceduren fjerner det nye menupunkt fra Celle-genvejsmenuen:

Sub DeleteFromShortcut()
  Ved fejl Genoptag Næste
  Application.CommandBars(“Celle”).Kontroller _
    ("&Skift sag"). Slet
Slut Sub

Dette viser, hvordan det nye menupunkt blev vist, når du højreklikker på en celle.

Sådan tilpasser du Excel 2016-genvejsmenuer i VBA

Cellegenvejsmenuen, der viser et brugerdefineret menupunkt: Skift mellem store og små bogstaver.

Den første egentlige kommando efter erklæringen af ​​et par variable kalder DeleteFromShortcut-proceduren. Denne erklæring sikrer, at der kun vises ét menupunkt Skift sag på genvejsmenuen Celle. Prøv at kommentere den linje (sæt en apostrof i starten af ​​linjen) og kør proceduren et par gange - men lad dig ikke rive med!

Højreklik på en celle, og du kan se flere forekomster af menupunktet Skift sag. Slip af med alle indtastninger ved at køre DeleteFromShortcut flere gange (én gang for hvert ekstra menupunkt).

Endelig har du brug for en måde at tilføje genvejsmenupunktet, når projektmappen åbnes, og at slette menupunktet, når projektmappen er lukket. Det er nemt at gøre dette. Du skal blot tilføje disse to hændelsesprocedurer til ThisWorkbook-kodemodulet:

Privat underarbejdsbog_Åben()
Kald AddToShortCut
Slut Sub
Privat underarbejdsbog_BeforeClose(Annuller som boolesk)
Ring til DeleteFromShortcut
Slut Sub

Workbook_Open-proceduren udføres, når projektmappen åbnes, og Workbook_BeforeClose-proceduren udføres, før projektmappen lukkes. Lige hvad lægen har bestilt.

Hvad er anderledes i Excel 2013 og Excel 2016?

Hvis du har brugt VBA til at arbejde med genvejsmenuer i Excel 2007 eller tidligere, skal du være opmærksom på en væsentlig ændring.

Tidligere, hvis din kode ændrede en genvejsmenu, var denne ændring gældende for alle projektmapper. Hvis du f.eks. føjede et nyt element til cellehøjrekliksmenuen, vil det nye element blive vist, når du højreklikker på en celle i en projektmappe (plus andre projektmapper, som du åbner senere). Med andre ord blev der foretaget genvejsmenuændringer på applikationsniveau .

Excel 2013 og Excel 2016 bruger en enkelt dokumentgrænseflade, og det påvirker genvejsmenuer. Ændringer, du foretager i genvejsmenuer, påvirker kun det aktive projektmappevindue. Når du udfører koden, der ændrer genvejsmenuen, ændres genvejsmenuen for andre vinduer end det aktive vindue ikke. Dette er en radikal afvigelse fra, hvordan tingene plejede at fungere.

En anden drejning: Hvis brugeren åbner en projektmappe (eller opretter en ny projektmappe), når det aktive vindue viser den ændrede genvejsmenu, viser den nye projektmappe også den ændrede genvejsmenu. Med andre ord viser nye vinduer de samme genvejsmenuer som det vindue, der var aktivt, da de nye vinduer blev åbnet.

Nederste linje: Hvis du tidligere åbnede en projektmappe eller et tilføjelsesprogram, der ændrede genvejsmenuer, kunne du være sikker på, at de ændrede genvejsmenuer ville være tilgængelige i alle projektmapper. Den sikkerhed har du ikke længere.

Opret brugerdefinerede genvejsmenuer i Access 2007

Makrodesignvinduet er anderledes i Access 2007 sammenlignet med senere versioner, så udvid de følgende sektioner for at følge med, hvis du bruger Access 2007.

Trin 1 for Access 2007: Opret en makrogruppe, der indeholder menukommandoer

I dette trin opretter du en makrogruppe, hvor hver makro vil være en separat kommando på din genvejsmenu.

Hvad er en makrogruppe?

En makrogruppe er et enkelt makroobjekt, der indeholder to eller flere uafhængige makroer. De individuelle makroer identificeres ved at indtaste et navn for hver makro i kolonnen Makronavne. I den følgende illustration  er Macro3  en makrogruppe. NotFoundMsg  og  FoundMsg  er individuelle makroer inden for gruppen, hver makro består af to makrohandlinger.

Eksempel på makrogruppe

Bemærk:  Kolonnen  Makronavn  er skjult som standard. For at få vist  kolonnen Makronavn  skal du på  fanen Design  i  gruppen Vis/skjul  klikke på  Makronavne .

  1. På  fanen Opret  i  gruppen Andet  skal du klikke på  Makro . Hvis denne kommando ikke er tilgængelig, skal du klikke på pilen under enten  Modul-  eller  Klassemodul-  knappen og derefter klikke på  Makro .

  2. På  fanen Design  i  gruppen Vis/skjul  skal du klikke på  Makronavne  for at få vist  kolonnen Makronavn  .

  3. For hver kommando, du ønsker på din brugerdefinerede genvejsmenu:

    • I  kolonnen Makronavn  skal du indtaste den tekst, du vil have vist på genvejsmenuen (f.eks. "Udskriv rapport" eller "Gem").

      Bemærk:  For at oprette en adgangsnøgle, så du kan bruge tastaturet til at vælge kommandoen, skal du skrive et og-tegn (&) før det bogstav, som du ønsker skal være adgangstasten i kommandonavnet (f.eks. "&Gem"). Dette brev vil blive understreget i menuen.
    • I  kolonnen Handling  skal du vælge den første handling, du ønsker at udføre, når du klikker på kommandoen i genvejsmenuen.

    • Hvis der er flere handlinger, du ønsker skal udføres, når du vælger denne kommando, skal du tilføje dem på de efterfølgende linjer. Lad cellen Makronavn stå tom for hver efterfølgende handling   .

      Bemærk:  For at oprette en linje mellem to menukommandoer skal du skrive en bindestreg (-) i  kolonnen Makronavn  mellem de relevante menukommandoer.
  4. Gem og navngiv makroen, for eksempel   mcrShortcutMenuCommands .

Den følgende illustration viser et eksempel på en makrogruppe for en brugerdefineret menu eller genvejsmenu.

En menumakrogruppe i designvisning

Trin 2 for Access 2007: Opret en makro, der opretter menuen

Dette trin kan virke overflødigt, men for at oprette genvejsmenuen fra den makrogruppe, du oprettede i trin 1, skal du oprette en anden makro, der indeholder AddMenu-  makrohandlingen  . Denne makro kaldes nogle gange "menumakroen".

  1. På  fanen Opret  i  gruppen Andet  skal du klikke på  Makro . Hvis denne kommando ikke er tilgængelig, skal du klikke på pilen under enten  Modul-  eller  Klassemodul-  knappen og derefter klikke på  Makro .

  2. På den første linje i makroen skal du vælge  AddMenu  på  handlingslisten  .

  3. Under  Handlingsargumenter skal du i  feltet Menunavn  indtaste navnet på menuen (f.eks. "Rapportkommandoer"). Dette argument er ikke påkrævet, men anbefales, hvis du i trin 3 planlægger at tilføje menuen til en båndfane (såsom fanen Tilføjelser  i  en formular eller rapport). Hvis menuen tilføjes som en genvejsmenu i trin 3,   ignoreres argumentet Menunavn .

  4.  Indtast navnet på den makro, du oprettede i trin 1, i  feltet Menu Macro Name .

  5. Gem og navngiv makroen, for eksempel  mcrAddShortcutMenu .

Den følgende illustration viser et eksempel på en menumakro, der skaber den menu, vi designede i trin 1.

En menumakro i designvisning

Trin 3 for Access 2007: Vedhæft menuen til en kontrol, formular, rapport eller database

Afhængigt af hvor du ønsker menuen skal vises, skal du bruge en eller flere af følgende procedurer.

  • Tilføj menuen til fanen Tilføjelsesprogrammer i en formular eller rapport

    Brug denne procedure, hvis du ønsker, at menuen skal vises på fanen  Tilføjelsesprogrammer  for en specifik formular eller rapport, som vist i følgende illustration:

    Tilføjelsesfane, der indeholder en brugerdefineret menu

    1. I navigationsruden skal du højreklikke på den formular eller rapport, hvor menuen skal vises, og derefter klikke på  Designvisning .

    2. På  fanen Design  i  gruppen Vis/skjul  skal du klikke på  Egenskabsark .

    3. Vælg hele objektet ved at vælge  Form  eller  Rapport  fra listen øverst i opgaveruden Egenskabsark.

    4.  Skriv navnet på den makro, du oprettede i trin 2 (i dette eksempel, "mcrAddShortcutMenu")  i genvejsmenuegenskabsfeltet på  fanen Andet på  egenskabsarket .

      Næste gang du åbner formularen eller rapporten,  vises fanen Tilføjelser  på båndet. Klik på fanen for at se menuen.

      For flere oplysninger om teknikker til tilpasning af bånd, såsom tilføjelse af brugerdefinerede faner eller skjulning af standardfaner, se artiklen  Opret et brugerdefineret bånd i Access .

      Båndet er en komponent i Microsoft Office Fluent-brugergrænsefladen.

  • Tilføj menuen som en genvejsmenu til en formular, rapport eller kontrol

    Brug denne procedure, hvis du ønsker, at menuen skal vises, når du højreklikker på en specifik formular, rapport eller kontrol, som vist i følgende illustration:

    En simpel genvejsmenu

    1. I navigationsruden skal du højreklikke på den formular eller rapport, hvor genvejsmenuen skal vises, og derefter klikke på  Designvisning .

    2. På  fanen Design  i  gruppen Vis/skjul  skal du klikke på  Egenskabsark .

    3. Vælg den kontrol eller det objekt, som du vil vedhæfte genvejsmenuen til.

      Bemærk:  For at vælge hele objektet skal du vælge  Formular  eller  Rapport  fra listen øverst i opgaveruden Egenskabsark.

    4.  Skriv navnet på den makro, du oprettede i trin 2 (i dette eksempel, "mcrAddShortcutMenu") på fanen Andet på egenskabsarket i genvejsmenulinjens   egenskabsboks  .

  • Tilføj menuen som en global genvejsmenu

    Denne procedure erstatter alle standardgenvejsmenuerne i den aktuelle database. Brugerdefinerede genvejsmenuer, som du har knyttet til bestemte formularer, rapporter eller kontrolelementer, påvirkes ikke.

    1. Klik på  Microsoft Office-knappen  , og klik derefter på  Adgangsindstillinger .

    2. Klik på Aktuel database i   dialogboksen  Adgangsindstillinger .

    3.  Skriv navnet på den makro, du oprettede i trin 2 (i dette eksempel, "mcrAddShortcutMenu") i feltet Genvejsmenulinje  under Indstillinger  for bånd og værktøjslinje .

  • Brugerdefinerede genvejsmenuer erstatter standardgenvejsmenuerne for de objekter, de er knyttet til. Hvis du vil beholde visse Access-kommandoer til brug på disse menuer, skal du bruge  handlingen RunCommand  til at placere kommandoerne i makrogrupperne for de menuer, du vil have dem i.

  • En brugerdefineret genvejsmenu, der er knyttet til en kontrol, erstatter alle andre brugerdefinerede genvejsmenuer, der er defineret i databasen. En tilpasset genvejsmenu, der er knyttet til en formular eller rapport, erstatter en tilpasset global genvejsmenu.

  • Når du angiver en menumakro for en formular eller rapport eller for databasen, kører Access denne menumakro, hver gang formularen, rapporten eller databasen åbnes. Hvis du foretager ændringer i menumakroen eller makrogruppen, der definerer dens kommandoer, mens formularen, rapporten eller databasen er åben, skal du lukke formularen, rapporten eller databasen og genåbne den for at se ændringerne.

  • For at oprette en undermenu skal du følge trin 1 for at oprette en separat makrogruppe, der kun indeholder undermenukommandoer. Følg derefter trin 1 igen for at definere kommandoerne for menuen på højere niveau. Tilføj undermenuen som et element i makrogruppen på højere niveau ved at bruge   makrohandlingen TilføjMenu . Den følgende illustration viser makrogruppen for en menu, der indeholder en undermenu, og viser derefter den resulterende genvejsmenu. Den tredje linje i makrogruppen opretter  undermenuen Eksporter til...  ( mcrSubMenu ).

    En genvejsmenu, der indeholder en undermenu

    Du kan oprette flere niveauer af undermenuer ved at bruge  AddMenu-  handlinger i makrogrupperne for hvert menuniveau. Sørg for at angive en værdi for  menunavnargumentet  for hver  AddMenu-  handling, ellers vises undermenuen som en tom linje i menuen på højere niveau.

  • Makrobetingelser understøttes kun i menumakroen på øverste niveau. Med andre ord kan du bruge en betingelse i en menumakro til at bestemme, om en bestemt menu eller genvejsmenu vil blive vist, men kun for menuerne på øverste niveau. Du kan ikke bruge betingelser til at vise eller skjule kommandoer eller undermenuer i menuerne. Du kan også bruge en betingelse til at skjule eller vise en brugerdefineret genvejsmenu eller global genvejsmenu.

  • Valgfrit kan menumakroen, som du opretter i trin 2, være en del af en makrogruppe. For eksempel, hvis du har flere genvejsmenuer til forskellige objekter eller kontrolelementer, kan du oprette et enkelt makroobjekt, der indeholder alle de nødvendige menumakroer. Sørg for at vise  kolonnen Makronavn  og skriv et unikt navn for hver makro. I trin 3 skal du bruge følgende notation til at henvise til makroen:  makrogruppenavn.makronavn . For eksempel  mcrAddShortcutMenus.AddMenu2 .


Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows Microsoft Word åbner filer i skrivebeskyttet tilstand, hvilket gør det umuligt at redigere det? Bare rolig, metoderne er nedenfor

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes fejl ved udskrivning af forkerte Microsoft Word-dokumenter Fejl ved udskrivning af Word-dokumenter med ændrede skrifttyper, rodede afsnit, manglende tekst eller tabt indhold er ret almindelige. Men lad være

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Hvis du har brugt pennen eller highlighteren til at tegne på dine PowerPoint-dias under en præsentation, kan du gemme tegningerne til næste præsentation eller slette dem, så næste gang du viser den, starter du med rene PowerPoint-dias. Følg disse instruktioner for at slette pen- og highlighter-tegninger: Sletning af linjer en ved […]

Indhold af stilbibliotek i SharePoint 2010

Indhold af stilbibliotek i SharePoint 2010

Style-biblioteket indeholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og billeder, der bruges af foruddefinerede mastersider, sidelayouts og kontrolelementer i SharePoint 2010. For at finde CSS-filer i Style-biblioteket på et udgivelsessted: Vælg Site Actions→ View Alt webstedsindhold. Indholdet af webstedet vises. Style-biblioteket ligger i […]

Formater tal i tusinder og millioner i Excel-rapporter

Formater tal i tusinder og millioner i Excel-rapporter

Overvæld ikke dit publikum med gigantiske tal. I Microsoft Excel kan du forbedre læsbarheden af ​​dine dashboards og rapporter ved at formatere dine tal, så de vises i tusinder eller millioner.

Sådan deler og følger du SharePoint-websteder

Sådan deler og følger du SharePoint-websteder

Lær, hvordan du bruger SharePoints sociale netværksværktøjer, der lader enkeltpersoner og grupper kommunikere, samarbejde, dele og forbinde.

Sådan konverteres datoer til julianske formater i Excel

Sådan konverteres datoer til julianske formater i Excel

Julianske datoer bruges ofte i produktionsmiljøer som et tidsstempel og hurtig reference for et batchnummer. Denne type datokodning giver detailhandlere, forbrugere og serviceagenter mulighed for at identificere, hvornår et produkt blev fremstillet, og dermed produktets alder. Julianske datoer bruges også i programmering, militæret og astronomi. Forskellige […]

Sådan opretter du en Access Web App

Sådan opretter du en Access Web App

Du kan oprette en webapp i Access 2016. Så hvad er en webapp overhovedet? Nå, web betyder, at det er online, og app er kun en forkortelse for "applikation". En Custom Web App er en online databaseapplikation, der tilgås fra skyen ved hjælp af en browser. Du bygger og vedligeholder webappen i desktopversionen […]

Hurtig startlinje i SharePoint 2010

Hurtig startlinje i SharePoint 2010

De fleste sider i SharePoint 2010 viser en liste over navigationslinks på linjen Hurtig start langs venstre side af siden. Hurtig startlinjen viser links til fremhævet webstedsindhold såsom lister, biblioteker, websteder og udgivelsessider. Hurtigstartlinjen indeholder to meget vigtige links: Linket Alt webstedsindhold: […]

Hvad betyder Solver-fejlmeddelelserne i Excel?

Hvad betyder Solver-fejlmeddelelserne i Excel?

Ved simple problemer finder Solver i Excel som regel hurtigt de optimale Solver-variableværdier for objektivfunktionen. Men i nogle tilfælde har Solver problemer med at finde de Solver-variableværdier, der optimerer objektivfunktionen. I disse tilfælde viser Solver typisk en meddelelse eller en fejlmeddelelse, der beskriver eller diskuterer det problem, der […]