上図のように、UserForm 上のコントロールで独自のショートカット メニューを使う方法です。ここでは、リストボックスを右クリックしたときにショートカット メニューを表示してみます。
Dim myBar As Variant ''(1) Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, _ ByVal X As Single, ByVal Y As Single) If Button = 2 Then myBar.ShowPopup ''(5) End Sub Private Sub UserForm_Initialize() Dim i As Long For i = 1 To 5 ListBox1.AddItem "アイテム " & i ''(2) Next i Set myBar = CommandBars.Add(Position:=msoBarPopup, Temporary:=True) ''(3) With myBar With .Controls.Add ''(4) .Caption = "先頭に移動" .OnAction = "UpToHead" .FaceId = 594 End With With .Controls.Add .Caption = "1つ上に移動" .OnAction = "UpToOne" .FaceId = 595 End With With .Controls.Add .Caption = "1つ下に移動" .BeginGroup = True .OnAction = "DownToOne" .FaceId = 596 End With With .Controls.Add .Caption = "最後に移動" .OnAction = "DownToTail" .FaceId = 597 End With End With End Sub