デザイン中のUserFormで、コマンドボタンをダブルクリックして表示されるプロシージャでは、左ボタン(標準ボタン)のクリックしか判別できません。
Private Sub CommandButton1_Click()
    ''このプロシージャは左クリックしか認識できない
End Sub
マウスの、左ボタンと右ボタンで、別の処理を行いたい場合は、Clickイベントではなく、MouseDownイベントまたはMouseUpイベントを使います。ここでは、MouseUpイベントでやってみましょう。MouseUpイベントは、マウスのボタンを押して、あがったときに発生します。まぁ、実際には、どっちでも似たようなものです。
Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, _
                                                            ByVal X As Single, ByVal Y As Single)
End Sub
MouseUpイベントの引数Buttonには、クリックされたボタンを表す数値が格納されます。
| 定数 | 値 | 内容 | 
|---|---|---|
| fmButtonLeft | 1 | 左ボタンが押されました | 
| fmButtonRight | 2 | 右ボタンが押されました | 
| fmButtonMiddle | 4 | 中央ボタンが押されました | 
なので、これを区別すれば、クリックされたボタンを判別できます。
Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, _
                                                            ByVal X As Single, ByVal Y As Single)
    Select Case Button
    Case 1
        MsgBox "左ボタンがクリックされました"
    Case 2
        MsgBox "右ボタンがクリックされました"
    End Select
End Sub
定数が使えないときは、数値を指定しましょう。
なお、ClickイベントとMousuUpイベントの両方にコードを記述した場合は、MouseUpイベントのプロシージャだけが実行されます。
Private Sub CommandButton1_Click()
    MsgBox "クリックされました"
End Sub
Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, _
                                                            ByVal X As Single, ByVal Y As Single)
    Select Case Button
    Case 1
        MsgBox "左ボタンがクリックされました"
    Case 2
        MsgBox "右ボタンがクリックされました"
    End Select
End Sub
