Excel VBAでシートを右クリックした時に操作する方法の記録です。
下図は、Excel2016です。
< スポンサーリンク >
構文
Worksheetオブジェクト.BeforeRightClick(Target, Cancel)
ワークシートを右クリックした時に、既定の右クリックの操作の前に発生します。
Target:必須。右クリックしたとき、マウスポインターに最も近いセルが渡されます。
Cancel:必須。イベントが発生すると、Falseが渡されます。イベントプロシージャでこの引数をTrueに設定すると、プロシージャが終了しても既定の右クリックの操作は実行されません。
例
VBEでオブジェクト欄の「(General)」と表示してあるプルダウンの部分を「Wordsheet」を選択し、プロシージャ欄を「BeforeRightClick」を選択します。
「Private Sub Worksheet_SelectionChange・・・End Sub」の部分は必要ないので削除します。
シートを右クリックしたときにセルがC5だったらメッセージを表示し、それ以外は通常のショートカットメニューが表示されるようにしてみます。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = “$C$5” Then
Cancel = True
MsgBox Target.Address & “セルをクリックしました”
End If
End Sub
C5のセル上で右クリックするとメッセージが表示されます。
C5以外のセル上で右クリックされると、通常のショートカットメニューが表示されます。
こんな記事も書いています