Hvordan tilpasse Excel 2016-snarveimenyer i VBA

Før Excel 2007 brukte VBA-programmerere CommandBar-objektet for å lage egendefinerte menyer, egendefinerte verktøylinjer og egendefinerte snarveismenyer (høyreklikk). Fra og med Excel 2007 er CommandBar-objektet i en ganske merkelig posisjon. Hvis du skriver kode for å tilpasse en meny eller en verktøylinje, fanger Excel opp den koden og ignorerer mange av kommandoene dine.

I stedet for å vise den gjennomtenkte grensesnittforbedringen, dumper Excel 2007 (som senere versjoner) ganske enkelt de tilpassede menyene og verktøylinjene inn i en oppsamlingsbånd-fane kalt Add-Ins.

Meny- og verktøylinjetilpasninger havner i Tillegg → Menykommandoer eller Tillegg → Egendefinerte verktøylinjer-gruppen. Men å tilpasse snarveimenyer (som også bruker CommandBar-objektet) fungerer fortsatt som det alltid har gjort - vel, liksom.

Bunnlinjen? CommandBar-objektet er ikke særlig nyttig lenger, men det er fortsatt den eneste måten å tilpasse snarveimenyer.

Legge til et nytt element i Cell-snarveismenyen

Nedenfor finner du eksempelkode som legger til et nytt element i hurtigmenyen som vises når du høyreklikker på en celle. Du bør kunne tilpasse disse eksemplene til dine behov.

Du kan forbedre Change Case-verktøyet litt ved å gjøre det tilgjengelig fra Cell-snarveismenyen.

AddToShortcut-prosedyren legger til et nytt menyelement til Cell-snarveismenyen. Du kan tilpasse den til å peke til dine egne makroer ved å endre Caption- og OnAction-egenskapene til objektet som heter NewControl.

Sub AddToShortCut()
  Dim bar som kommandolinje
  Dim NewControl As CommandBarButton
  Slett fra snarvei
  Set Bar = Application.CommandBars(“Cell”)
  Sett NewControl = Bar.Controls.Add _
     (Type:=msoControlButton, ID:=1, _
     midlertidig:=True)
  Med NewControl
    .Caption = "&Endre sak"
    .OnAction = "ChangeCase"
    .Style = msoButtonIconAndCaption
  Avslutt med
End Sub

Når du endrer en snarveimeny, forblir denne endringen gjeldende til du starter Excel på nytt. Med andre ord, endrede snarveimenyer tilbakestilles ikke seg selv når du lukker arbeidsboken som inneholder VBA-koden. Derfor, hvis du skriver kode for å endre en snarveimeny, skriver du nesten alltid kode for å reversere effekten av endringen.

Prosedyren DeleteFromShortcut fjerner det nye menyelementet fra Cell-snarveismenyen:

Sub DeleteFromShortcut()
  Ved feil på Fortsett neste
  Application.CommandBars(“Cell”).Kontroller _
    ("&Endre sak"). Slett
End Sub

Dette viser hvordan det nye menyelementet ble vist etter at du høyreklikker på en celle.

Hvordan tilpasse Excel 2016-snarveimenyer i VBA

Cell-snarveismenyen som viser et tilpasset menyelement: Endre store og små bokstaver.

Den første faktiske kommandoen etter deklarasjonen av et par variabler kaller DeleteFromShortcut-prosedyren. Denne setningen sikrer at bare ett menyelement Endre sak vises på snarveien Celle-menyen. Prøv å kommentere den linjen (sett en apostrof i begynnelsen av linjen) og kjør prosedyren noen ganger - men ikke la deg rive med!

Høyreklikk på en celle, og du kan se flere forekomster av menyelementet Endre sak. Bli kvitt alle oppføringene ved å kjøre DeleteFromShortcut flere ganger (en gang for hvert ekstra menyelement).

Til slutt trenger du en måte å legge til snarveimenyelementet når arbeidsboken åpnes og slette menyelementet når arbeidsboken lukkes. Å gjøre dette er enkelt. Bare legg til disse to hendelsesprosedyrene til ThisWorkbook-kodemodulen:

Privat underarbeidsbok_Open()
Ring AddToShortCut
End Sub
Privat underarbeidsbok_BeforeClose(Avbryt som boolsk)
Ring DeleteFromShortcut
End Sub

Workbook_Open-prosedyren utføres når arbeidsboken åpnes, og Workbook_BeforeClose-prosedyren utføres før arbeidsboken lukkes. Akkurat det legen bestilte.

Hva er forskjellen i Excel 2013 og Excel 2016?

Hvis du har brukt VBA til å jobbe med snarveimenyer i Excel 2007 eller tidligere, må du være klar over en betydelig endring.

Tidligere, hvis koden din endret en snarveimeny, var denne endringen gjeldende for alle arbeidsbøker. For eksempel, hvis du la til et nytt element til høyreklikkmenyen for celle, vil det nye elementet vises når du høyreklikker en celle i en arbeidsbok (pluss andre arbeidsbøker du åpner senere). Med andre ord ble det gjort endringer i snarveier på applikasjonsnivå .

Excel 2013 og Excel 2016 bruker ett enkelt dokumentgrensesnitt, og det påvirker snarveimenyer. Endringer du gjør i snarveimenyer påvirker bare det aktive arbeidsbokvinduet. Når du kjører koden som endrer hurtigmenyen, vil ikke hurtigmenyen for andre vinduer enn det aktive vinduet bli endret. Dette er et radikalt avvik fra hvordan ting fungerte før.

En annen vri: Hvis brukeren åpner en arbeidsbok (eller oppretter en ny arbeidsbok) når det aktive vinduet viser den endrede snarveimenyen, viser den nye arbeidsboken også den modifiserte hurtigmenyen. Med andre ord viser nye vinduer de samme hurtigmenyene som vinduet som var aktivt da de nye vinduene ble åpnet.

Bunnlinjen: Tidligere, hvis du åpnet en arbeidsbok eller et tillegg som endret snarveimenyer, kunne du være trygg på at de endrede snarveismenyene ville være tilgjengelige i alle arbeidsbøker. Den forsikringen har du ikke lenger.

Lag egendefinerte snarveimenyer i Access 2007

Makrodesignvinduet er annerledes i Access 2007 sammenlignet med senere versjoner, så utvid de følgende delene for å følge med hvis du bruker Access 2007.

Trinn 1 for Access 2007: Opprett en makrogruppe som inneholder menykommandoene

I dette trinnet oppretter du en makrogruppe, der hver makro vil være en egen kommando på hurtigmenyen.

Hva er en makrogruppe?

En makrogruppe er et enkelt makroobjekt som inneholder to eller flere uavhengige makroer. De individuelle makroene identifiseres ved å skrive inn et navn for hver makro i kolonnen Makronavn. I den følgende illustrasjonen  er Macro3  en makrogruppe. NotFoundMsg  og  FoundMsg  er individuelle makroer i gruppen, hver makro består av to makrohandlinger.

Eksempel på makrogruppe

Merk:  Kolonnen  Makronavn  er skjult som standard. For å vise  Makronavn-  kolonnen, på  Design-  fanen, i  Vis/Skjul-  gruppen, klikk på  Makronavn .

  1. I  kategorien Opprett  , i  gruppen Annet  , klikker  du Makro . Hvis denne kommandoen ikke er tilgjengelig, klikker du på pilen under enten  Modul-  eller  Klassemodul-  knappen, og klikker deretter  Makro .

  2. I  kategorien Design  , i  Vis/Skjul-  gruppen, klikker du på  Makronavn  for å vise  kolonnen Makronavn  .

  3. For hver kommando du vil ha på din egendefinerte snarveimeny:

    • I  kolonnen Makronavn  skriver du inn teksten du vil vise på hurtigmenyen (for eksempel "Skriv ut rapport" eller "Lagre").

      Merk:  For å opprette en tilgangstast slik at du kan bruke tastaturet til å velge kommandoen, skriv inn et og-tegn (&) før bokstaven som du vil skal være tilgangsnøkkel i kommandonavnet (for eksempel "&Lagre"). Dette brevet vil være understreket på menyen.
    • Handling-  kolonnen velger du den første handlingen du vil utføre når du klikker på kommandoen på hurtigmenyen.

    • Hvis det er flere handlinger du ønsker å utføre når du velger denne kommandoen, legg dem til på de påfølgende linjene. La Makronavn -cellen stå tom for hver påfølgende handling   .

      Merk:  For å lage en linje mellom to menykommandoer, skriv inn en bindestrek (-) i  kolonnen Makronavn  mellom de aktuelle menykommandoene.
  4. Lagre og navngi makroen, for eksempel   mcrShortcutMenuCommands .

Følgende illustrasjon viser et eksempel på en makrogruppe for en egendefinert meny eller snarveimeny.

En menymakrogruppe i designvisning

Trinn 2 for Access 2007: Lag en makro som lager menyen

Dette trinnet kan virke overflødig, men for å lage hurtigmenyen fra makrogruppen du opprettet i trinn 1, må du opprette en andre makro som inneholder makrohandlingen   AddMenu . Denne makroen kalles noen ganger "menymakroen".

  1. I  kategorien Opprett  , i  gruppen Annet  , klikker  du Makro . Hvis denne kommandoen ikke er tilgjengelig, klikker du på pilen under enten  Modul-  eller  Klassemodul-  knappen, og klikker deretter  Makro .

  2. På den første linjen i makroen velger du  AddMenu  i  handlingslisten  .

  3. Under  HandlingsargumenterMenynavn-  boksen skriver du inn navnet på menyen (for eksempel "Rapportkommandoer"). Dette argumentet er ikke nødvendig, men anbefales hvis du i trinn 3 planlegger å legge til menyen i en båndfane (for eksempel fanen Tillegg  i  et skjema eller en rapport). Hvis menyen legges til som en snarveimeny i trinn 3,   ignoreres menynavnargumentet .

  4. I  boksen Menu Macro Name  skriver du inn navnet på makroen du opprettet i trinn 1.

  5. Lagre og navngi makroen, for eksempel  mcrAddShortcutMenu .

Følgende illustrasjon viser et eksempel på en menymakro som lager menyen vi utviklet i trinn 1.

En menymakro i designvisning

Trinn 3 for Access 2007: Legg ved menyen til en kontroll, skjema, rapport eller database

Avhengig av hvor du vil at menyen skal vises, bruk en eller flere av følgende prosedyrer.

  • Legg til menyen i fanen Tillegg i et skjema eller en rapport

    Bruk denne prosedyren hvis du vil at menyen skal vises på fanen  Tillegg  for et bestemt skjema eller rapport, som vist i følgende illustrasjon:

    Tillegg-fanen som inneholder en egendefinert meny

    1. I navigasjonsruten høyreklikker du skjemaet eller rapporten der du vil at menyen skal vises, og klikker deretter  Design View .

    2. På  Design-  fanen, i  Vis/Skjul-  gruppen, klikker du  Egenskapsark .

    3. Velg hele objektet ved å velge  Skjema  eller  Rapport  fra listen øverst i oppgavepanelet Egenskapsark.

    4. I  kategorien Annet  på egenskapsarket, i  egenskapsboksen Snarveimeny  , skriver du inn navnet på makroen du opprettet i trinn 2 (i dette eksemplet "mcrAddShortcutMenu").

      Neste gang du åpner skjemaet eller rapporten,  vises fanen Tillegg  på båndet. Klikk på fanen for å se menyen.

      For mer informasjon om båndtilpasningsteknikker, for eksempel å legge til egendefinerte faner eller skjule standardfanene, se artikkelen  Opprett et tilpasset bånd i Access .

      The Ribbon er en komponent i Microsoft Office Fluent-brukergrensesnittet.

  • Legg til menyen som en snarveimeny for et skjema, rapport eller kontroll

    Bruk denne fremgangsmåten hvis du vil at menyen skal vises når du høyreklikker på et bestemt skjema, rapport eller kontroll, som vist i følgende illustrasjon:

    En enkel snarveimeny

    1. I navigasjonsruten høyreklikker du skjemaet eller rapporten der du vil at hurtigmenyen skal vises, og klikker deretter  Design View .

    2. På  Design-  fanen, i  Vis/Skjul-  gruppen, klikker du  Egenskapsark .

    3. Velg kontrollen eller objektet du vil legge ved hurtigmenyen til.

      Merk:  For å velge hele objektet, velg  Skjema  eller  Rapport  fra listen øverst i oppgavepanelet Egenskapsark.

    4.  Skriv inn navnet på makroen du opprettet i trinn 2 (i dette eksemplet "mcrAddShortcutMenu") i kategorien Annet på egenskapsarket i egenskapsboksen for  snarveimenylinje  )  .

  • Legg til menyen som en global snarveimeny

    Denne prosedyren erstatter alle standard snarveimenyer i gjeldende database. Egendefinerte snarveimenyer som du har knyttet til bestemte skjemaer, rapporter eller kontroller, påvirkes ikke.

    1. Klikk på  Microsoft Office-knappen  og klikk deretter på  Tilgangsalternativer .

    2. I   dialogboksen  Tilgangsalternativer klikker du på Gjeldende database .

    3.  Skriv inn navnet på makroen du opprettet i trinn 2 (i dette eksemplet "mcrAddShortcutMenu") under  Alternativer for bånd og verktøylinje i  boksen Snarveimenylinje .

  • Egendefinerte snarveimenyer erstatter standard snarveimenyer for objektene de er knyttet til. Hvis du vil beholde visse Access-kommandoer for bruk på disse menyene, bruk  RunCommand-  handlingen for å legge kommandoene inn i makrogruppene for menyene du vil ha dem i.

  • En egendefinert snarveimeny som er knyttet til en kontroll erstatter alle andre egendefinerte snarveimenyer som er definert i databasen. En egendefinert snarveimeny som er knyttet til et skjema eller rapport erstatter en egendefinert global snarveimeny.

  • Når du angir en menymakro for et skjema eller en rapport eller for databasen, kjører Access denne menymakroen hver gang skjemaet, rapporten eller databasen åpnes. Hvis du gjør endringer i menymakroen eller makrogruppen som definerer kommandoene mens skjemaet, rapporten eller databasen er åpen, må du lukke skjemaet, rapporten eller databasen og åpne den på nytt for å se endringene.

  • For å opprette en undermeny, følg trinn 1 for å lage en egen makrogruppe som bare inneholder undermenykommandoene. Følg deretter trinn 1 igjen for å definere kommandoene for menyen på høyere nivå. Legg til undermenyen som et element i makrogruppen på høyere nivå ved å bruke makrohandlingen   Legg til meny . Følgende illustrasjon viser makrogruppen for en meny som inneholder en undermeny, og viser deretter den resulterende snarveimenyen. Den tredje linjen i makrogruppen oppretter  undermenyen Eksporter til...  ( mcrSubMenu ).

    En snarveimeny som inneholder en undermeny

    Du kan opprette flere nivåer av undermenyer ved å bruke  AddMenu-  handlinger i makrogruppene for hvert menynivå. Sørg for å angi en verdi for  menynavn-  argumentet for hver  AddMenu-  handling, ellers vil undermenyen vises som en tom linje i menyen på høyere nivå.

  • Makrobetingelser støttes kun i menymakroen på øverste nivå. Med andre ord kan du bruke en betingelse i en menymakro for å bestemme om en bestemt meny eller snarveimeny skal vises, men bare for menyene på toppnivået. Du kan ikke bruke betingelser for å vise eller skjule kommandoer eller undermenyer på menyene. Du kan også bruke en betingelse for å skjule eller vise en egendefinert snarveimeny eller global snarveimeny.

  • Valgfritt kan menymakroen du oppretter i trinn 2, være en del av en makrogruppe. Hvis du for eksempel har flere snarveimenyer for forskjellige objekter eller kontroller, kan du lage et enkelt makroobjekt som inneholder alle nødvendige menymakroer. Sørg for å vise  kolonnen Makronavn  og skriv inn et unikt navn for hver makro. I trinn 3 bruker du følgende notasjon for å referere til makroen:  makrogruppenavn.makronavn . For eksempel,  mcrAddShortcutMenus.AddMenu2 .


Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows Microsoft Word åpner filer i skrivebeskyttet modus, noe som gjør det umulig å redigere dem? Ikke bekymre deg, metodene er nedenfor

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Slik fikser du feil ved utskrift av feil Microsoft Word-dokumenter Feil ved utskrift av Word-dokumenter med endrede fonter, rotete avsnitt, manglende tekst eller tapt innhold er ganske vanlig. Men ikke gjør det

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Hvis du har brukt pennen eller merkepennen til å tegne på PowerPoint-lysbildene dine under en presentasjon, kan du lagre tegningene til neste presentasjon eller slette dem, slik at du neste gang du viser dem starter med rene PowerPoint-lysbilder. Følg disse instruksjonene for å slette penn- og merkepenntegninger: Slette linje én på […]

Style Library-innhold i SharePoint 2010

Style Library-innhold i SharePoint 2010

Stilbiblioteket inneholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og bilder som brukes av forhåndsdefinerte mastersider, sideoppsett og kontroller i SharePoint 2010. For å finne CSS-filer i stilbiblioteket til et publiseringsnettsted: Velg Site Actions→ View Alt innhold på nettstedet. Innholdet på nettstedet vises. Style-biblioteket ligger i […]

Formater tall i tusenvis og millioner i Excel-rapporter

Formater tall i tusenvis og millioner i Excel-rapporter

Ikke overveld publikum med gigantiske tall. I Microsoft Excel kan du forbedre lesbarheten til dashbordene og rapportene dine ved å formatere tallene dine slik at de vises i tusenvis eller millioner.

Hvordan dele og følge SharePoint-nettsteder

Hvordan dele og følge SharePoint-nettsteder

Lær hvordan du bruker SharePoints sosiale nettverksverktøy som lar enkeltpersoner og grupper kommunisere, samarbeide, dele og koble til.

Hvordan konvertere datoer til julianske formater i Excel

Hvordan konvertere datoer til julianske formater i Excel

Julianske datoer brukes ofte i produksjonsmiljøer som et tidsstempel og hurtigreferanse for et batchnummer. Denne typen datokoding lar forhandlere, forbrukere og serviceagenter identifisere når et produkt ble laget, og dermed alderen på produktet. Julianske datoer brukes også i programmering, militæret og astronomi. Forskjellig […]

Hvordan lage en Access Web App

Hvordan lage en Access Web App

Du kan lage en nettapp i Access 2016. Så hva er en nettapp egentlig? Vel, nettet betyr at det er online, og appen er bare en forkortelse for "applikasjon". En Custom Web App er en online databaseapplikasjon som du får tilgang til fra skyen ved hjelp av en nettleser. Du bygger og vedlikeholder nettappen i skrivebordsversjonen […]

Hurtigstartlinje i SharePoint 2010

Hurtigstartlinje i SharePoint 2010

De fleste sidene i SharePoint 2010 viser en liste over navigasjonskoblinger på hurtigstartlinjen langs venstre side av siden. Hurtigstartlinjen viser koblinger til innhold på nettstedet som lister, biblioteker, nettsteder og publiseringssider. Hurtigstartlinjen inneholder to svært viktige lenker: Linken for alt nettstedinnhold: […]

Hva betyr løserfeilmeldingene i Excel?

Hva betyr løserfeilmeldingene i Excel?

For enkle problemer finner Solver i Excel vanligvis raskt de optimale Solver-variabelverdiene for objektivfunksjonen. Men i noen tilfeller har Solver problemer med å finne Solver-variabelverdiene som optimerer objektivfunksjonen. I disse tilfellene viser Solver vanligvis en melding eller en feilmelding som beskriver eller diskuterer problemet som […]