Innholdsfortegnelse:
Video: Excelmanden præsenterer Grupperinger og disposition i Microsoft Excel 2025
Før Excel 2007 brukte VBA-programmerere CommandBar-objektet for å lage egendefinerte menyer, tilpassede verktøylinjer og tilpassede snarveier (høyreklikk) -menyer. Begynnelsen med Excel 2007 er CommandBar-objektet i en ganske merkelig posisjon. Hvis du skriver kode for å tilpasse en meny eller en verktøylinje, avbryter Excel den koden og ignorerer mange av kommandoene dine.
I stedet for å vise et godt gjennomtenkt grensesnittforbedring, dumper Excel 2007 (som senere versjoner) rett og slett de tilpassede menyene og verktøylinjene i en fange-alle båndflikk med navnet Add-Ins.
Tilpassing av meny og verktøylinje ende opp i Add-Ins → Menykommandoer eller Add-ins → Tilpassede verktøylinjer-gruppen. Men tilpassing av snarveismenyer (som også bruker CommandBar-objektet) fungerer fortsatt som det alltid har - vel slags.
Bottom line? CommandBar-objektet er ikke særlig nyttig lenger, men det er fortsatt den eneste måten å tilpasse snarveismenyer.
Legge til et nytt element i hurtigmenyen Celle
Nedenfor finner du prøvekode som legger til et nytt element i hurtigmenyen som vises når du høyreklikker en celle. Du bør kunne tilpasse disse eksemplene til dine behov.
Du kan forbedre dette verktøyet Change Case litt ved å gjøre det tilgjengelig fra Cell snarveismenyen.
AddToShortcut-prosedyren legger til et nytt menyelement på Cell-snarveismenyen. Du kan tilpasse den til å peke på dine egne makroer ved å endre egenskapene for bildetekst og onAction av objektet NewControl.
Sub AddToShortCut () Dim Bar Som CommandBar Dim NewControl Som CommandBarButton DeleteFromShortcut Set Bar = Program. CommandBars ("Cell") Sett NewControl = Bar. Kontroller. Legg til _ (Type: = msoControlButton, ID: = 1, _ midlertidig: = True) Med NewControl. Caption = "& Change Case". OnAction = "ChangeCase". Style = msoButtonIconAndCaption End With End Sub
Når du endrer en snarvei, forblir denne endringen i kraft til du starter om Excel. Med andre ord, endrede snarveismenyer resetter ikke seg når du lukker arbeidsboken som inneholder VBA-koden. Derfor, hvis du skriver kode for å endre en snarvei, skriver du nesten alltid kode for å reversere effekten av endringen.
DeleteFromShortcut-prosedyren fjerner det nye menyelementet fra Cell-snarveismenyen:
Sub DeleteFromShortcut () På Feil Fortsett neste applikasjon. Commandbars (“Cell”). Kontroller _ ("& Change Case"). Slett sluttdel
Dette viser hvordan det nye menyelementet vises etter at du høyreklikker en celle.
Den første egentlige kommandoen etter deklarasjonen av et par variabler kaller DeleteFromShortcut-prosedyren. Denne utsagnet sikrer at bare ett menyelement i Change Case vises i snarveiscellemenyen. Prøv å kommentere den linjen (legg en apostrof på begynnelsen av linjen) og kjør prosedyren et par ganger - men ikke bli båret bort!
Høyreklikk en celle, og du kan se flere forekomster av menyelementet Change Case. Bli kvitt alle oppføringene ved å kjøre DeleteFromShortcut flere ganger (en gang for hvert ekstra menyelement).
Til slutt må du legge til snarveismenyelementet når arbeidsboken er åpnet og for å slette menyelementet når arbeidsboken er lukket. Å gjøre dette er enkelt. Bare legg til disse to hendelsesprosedyrene i ThisWorkbook-kodemodulen:
Privat Sub Workbook_Open () Ring AddToShortCut Slutt Sub Private Sub Workbook_BeforeClose (Avbryt som Boolean) Ring DeleteFromShortcut End Sub
ArbeidsbokenOpen prosedyre utføres når arbeidsboken åpnes, og Workbook_BeforeClose-prosedyren blir utført før arbeidsboken er stengt. Bare hva legen bestilte.
Hva er forskjellig i Excel 2013 og Excel 2016?
Hvis du har brukt VBA til å arbeide med snarveismenyer i Excel 2007 eller tidligere, må du være oppmerksom på en vesentlig endring.
Tidligere, hvis koden endret en snarveismeny, var denne endringen i kraft for alle arbeidsbøker. Hvis du for eksempel har lagt til et nytt element i høyreklikkmenyen til cellen, vil det nye elementet vises når du høyreklikket en celle i noen arbeidsbok (pluss andre arbeidsbøker du åpner senere). Med andre ord ble snarvei-modifikasjoner gjort på applikasjonen -nivået.
Excel 2013 og Excel 2016 bruker et enkelt dokumentgrensesnitt, og det påvirker snarveismenyer. Endringer du gjør i snarveismenyer, påvirker bare det aktive arbeidsbokvinduet. Når du kjører koden som endrer hurtigmenyen, vil snarveismenyen for andre vinduer enn det aktive vinduet ikke endres. Dette er en radikal avgang fra hvordan ting pleide å fungere.
En annen vri: Hvis brukeren åpner en arbeidsbok (eller lager en ny arbeidsbok) når det aktive vinduet viser den endrede snarveismenyen, viser den nye arbeidsboken også den endrede snarveismenyen. Med andre ord viser nye vinduer de samme snarveismenyene som vinduet som var aktivt da de nye vinduene ble åpnet.
Bunnlinje: Hvis du åpnet en arbeidsbok eller legge til i endrede snarveismenyer, har du tidligere forsikret deg om at de modifiserte snarveismenyene vil være tilgjengelige i alle arbeidsbøker. Du har ikke lenger denne forsikringen.
