Just nu i M3-nätverket
Gå till innehåll

VBA - Excel. Meny vid högerklick?


Dwinnie

Rekommendera Poster

I VBA i Excel försöker jag göra följande:

När en användare högerklickar på en etikett (label) vill jag att en meny ska dyka upp där användaren kan välja vart han/hon vill gå härnäst.

 

Klickningen är inget problem, vad som är problem är att få en meny att dyka upp. Den ska alltså inte synas i vanliga fall.

 

Bara jag får reda på vad funktionen heter så ska jag nog lyckas klura ut det, men eftersom jag knappt har någon erfarenhet alls av VBA vet jag inte ens vad jag letar efter i hjälpen...

Länk till kommentar
Dela på andra webbplatser

Beror på hur avancerat du vill ha det. Om du bara vill ha en frågeknapp räcker följande:

svar = InputBox(Prompt:="Vart vill du gå?")

Sedan kan du med lite if-satser styra användaren vidare. Om du däremot vill visa olika alternativ som det räcker att klicka på blir det lite knepigare. Men som sagt, det beror på hur avancerat det ska vara.

 

Länk till kommentar
Dela på andra webbplatser

Det som ser bäst ut är om det dyker upp en meny (som när man högerklickar i Word eller IE osv), det tror jag att användarna känner sig mest bekväma med.

 

Är det väldigt komplicerat så blir jag tvungen att göra på något annat sätt =)

 

Det vore kanon om jag fick reda på åt vilket håll jag ska rikta blicken för att hitta info. Bara jag vet var jag ska börja så kan jag nog klara av resten =)

 

 

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Här är ett kort exempel på hur du gör. Vill du ha det annorlunda är det bara att experimentera. Menyn anropas via funktionen DisplayCustomPopUp.

 

Kör följande varje gång du öppnar arbetsboken:

Option Explicit

Private Sub Workbook_Open()
   CreatePopUp
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   DeletePopUp
End Sub

 

Själva menyn hanteras på följande sätt:

Option Explicit

Const PopUpCommandBarName As String = "TemporaryPopupMenu"

Sub DeletePopUp() ' ta bort popup-menyn
   On Error Resume Next
   CommandBars(PopUpCommandBarName).Delete
   On Error GoTo 0
End Sub

Sub CreatePopUp() ' skapa popup-menyn
Dim cb As CommandBar
   DeletePopUp
   Set cb = CommandBars.Add(PopUpCommandBarName, msoBarPopup, False, True)
   With cb
       With .Controls.Add(Type:=msoControlButton)
         .OnAction = "Makro1"
         .FaceId = 71
         .Caption = "Alternativ 1"
       End With
       With .Controls.Add(Type:=msoControlButton)
         .OnAction = "Makro2"
         .FaceId = 72
         .Caption = "Alternativ 2"
       End With
   End With
   Set cb = Nothing
End Sub

Sub DisplayCustomPopUp() ' visa popup-menyn
   Application.CommandBars(PopUpCommandBarName).ShowPopup
End Sub

Sub Makro1() ' Alternativ 1
   MsgBox ("Alternativ 1, eh?")
End Sub

Sub Makro2() ' Alternativ 2
   MsgBox ("Alternativ 2, eh?")
End Sub

 

Lycka till!

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...