Legge til varer i en Context Menu

June 29  by Eliza

Når du høyreklikker på en celle, gir Excel du med en funksjonsrik Kontekstmeny som lar deg gjøre en rekke ting. Det kan være lurt å legge noen funksjoner til at Kontekstmeny, spesielt hvis de er funksjoner du bruker ofte.

Dessverre kan du ikke redigere kontekstmenyer på samme måte som du kan redigere andre menyer-ved hjelp Tilpass på Verktøy-menyen. I stedet må du manipulere Hurtigmenyer gjennom VBA.

Hvis du ønsker å legge til et element på hurtigmenyen som vises når du høyreklikker på en celle, kan du bruke følgende kode:

Sub AddItemToContextMenu ()
Dim cmdNew Som CommandBarButton
Satt cmdNew = Commandbars ("celle"). Controls.Add

Med cmdNew
.Caption = "My Procedure"
.OnAction = "MyProcedure"
.BeginGroup = True
Avslutt med
End Sub

Alt du trenger å gjøre er å sette den .Caption eiendom til hva menyen teksten du vil skal brukes, og deretter endre .OnAction eiendommen slik at den peker til en makro eller kommando du ønsker brukt. Når du senere ønsker å fjerne menyvalg, kan du bruke følgende makro:

Sub RemoveContextMenuItem ()
On Error Resume Next
Commandbars ("celle"). Controls ("My procedure"). Slett
End Sub

For å bruke dette, endre "My Procedure" tekst til hva teksten du brukte i .Caption eiendom av forrige makro. On Error setningen brukes i denne makroen bare i tilfelle den angitte makroen elementet ikke hadde vært tidligere lagt til.

Ved å endre makroen bare litt, kan du angi at tillegg til kontekstmenyen bør skje bare når høyreklikke på spesifikke celler. Følgende makro sjekker for å se om du er å klikke på en celle i området C10: E25. Hvis du er, så det legger et menyvalg for inngrepet på slutten av hurtigmenyen.

Private Sub Worksheet_BeforeRightClick (ByVal Target As Range, _
Avbryt Som Boolean)
Dim cmdNew Som CommandBarButton

For Hver ICBC I Application.CommandBars ("celle"). Controls
Hvis icbc.Tag = "brccm" Da icbc.Delete
Neste ICBC

Hvis ikke Application.Intersect (Target, Range ("c10: e25")) _
Er Ingenting Deretter
Satt cmdNew = Commandbars ("celle"). Controls.Add
Med cmdNew
.Caption = "My Procedure"
.OnAction = "MyProcedure"
.BeginGroup = True
.Tag = "Brccm"
Avslutt med
End If
End Sub

I VBA editor, må denne makroen som skal legges til den konkrete regnearket du vil det brukes med. Alt du trenger å gjøre er å dobbeltklikke på regnearket, i Prosjekt Explorer (øvre venstre hjørne av VBA editor), og deretter legge den inn i kodevinduet for at regnearket.

Som med den tidligere makro, er alt du trenger å gjøre endre innstillingene som er angitt for de .Caption og .OnAction egenskaper. I tillegg kan det være lurt å endre celleområdet som regnes som "gyldig" når du legger til et menyvalg-bare endre "c: 10: e25" range spesifikasjonen til utvalget ønsket. Du kan også bruke et navngitt område i stedet for celleområdet, og det er flott hvis din gyldig område er egentlig et sett av ikke-sammenhengende celler.

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (2064) gjelder for Microsoft Excel 97, 2000, 2002, og 2003.