• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Scheidingslijn tussen 2 Excel rechtsklik menu items

Status
Niet open voor verdere reacties.

corvdh

Gebruiker
Lid geworden
29 aug 2010
Berichten
128
Ik gebruik een in vba gemaakt rechtsklikmenu zoals hier onder weergegeven in de code.
Nu zou ik graag een scheidingslijn (separator) willen tussen submenu 1 en submenu 2.
Weet iemand hoe dit moet?

Code:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

    Dim ctrl As CommandBarControl
    Dim btn As CommandBarControl
    
    
    For Each icbc In Application.CommandBars("cell").Controls
        If icbc.Tag = "brccm" Then
            icbc.Delete
        Else
            icbc.Visible = True
            icbc.Enabled = True
        End If
    Next icbc
    
    
            
            For Each ctrl In Application.CommandBars("Cell").Controls
                ctrl.Visible = False
            Next
           
For Each ctrl In Application.CommandBars("Cell").Controls
                ctrl.Visible = False
            Next

' submenu 1 
Set ctrl = Application.CommandBars("Cell").Controls.Add(Type:=msoControlPopup)
            ctrl.Caption = "Submenu01"
            Set btn = ctrl.Controls.Add(Type:=msoControlButton)
            btn.Caption = "Test01"
            btn.Tag = "tag"
            btn.OnAction = "Test01_macro"
            btn.FaceId = 59
            
            Set btn = ctrl.Controls.Add(Type:=msoControlButton)
            btn.Caption = “Test02"
            btn.Tag = "tag"
            btn.OnAction = "Test02_macro"
            btn.FaceId = 59 


' submenu 2 
            Set ctrl = Application.CommandBars("Cell").Controls.Add(Type:=msoControlPopup)
            ctrl.Caption = "Submenu02"
            Set btn = ctrl.Controls.Add(Type:=msoControlButton)
            btn.Caption = "Test03"
            btn.Tag = "tag"
            btn.OnAction = "Test03_macro"
            btn.FaceId = 59

End Sub
 
Zet het attribuut BeginGroup van een nieuw menu item op True.
Dit genereert een separator line.

Dus:
btn.BeginGroup = True
 
Hallo Edmoor,

Ik het het geprobeerd en het lukt me wel om een seperatorline te maken in het submenu zelf.
Maar het lukt mij niet om een seperatorline te krijgen in het menu dat als eerste verschijnt wanneer je rechts klikt.
Ook een faceId kan ik alleen weergeven in een submenu, klopt dit?
 
Als het om Office 2003 gaat dan kan dat kloppen inderdaad.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan