Workbook_SheetBeforeRightClick 右クリックした場合に使用するイベント

Workbook_SheetBeforeRightClick

ブック内のシートを右クリックしたら処理をする
Workbook_SheetBeforeRightClick

リンクユニット


イベントマクロ 06回

ワークシートを右クリックしたときに処理するイベントマクロ

このコードでは、既定の右クリックの操作の前に、ワークシートを右クリックしたときに発生します。
規定の右クリックメニューを表示させる前に、他の処理を行うわけです。

(サンプルファイルは、こちらから イベントマクロ06回サンプルデータ

ブックのシートで右クリックを禁止する

1. ブック内のシートで規定の右クリックの操作を無効にします。コードはThis workBookに記述します。
コードが記述されているブック内のシートで右クリックしてもキャンセルされて何も起りません。


Workbook_SheetBeforeRightClick1 border=0
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
            ByVal Target As Range, Cancel As Boolean)
    Cancel = True
End Sub

2. こちらは、メッセージを表示する例です。右クリックできないと「あれ?」と驚くだろうから、メッセージボックスで右クリックが使えませんと表示する。

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    MsgBox ("このワークブックでは右クリックメニューは使えません"), _
    vbInformation, "右クリックメニュー"
End Sub


Workbook_SheetBeforeRightClick2 border=0

特定シートだけ右クリック禁止

3. 今度は、シートを限定して右クリック禁止にしましょう。シートが4枚あるので、Sheet1とSheet3を右クリック禁止にします。

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
      If Sh.Name = "Sheet1" Or Sh.Name = "Sheet3" Then
        Cancel = True
      End If
End Sub

このコードですと、右クリックしても指定シートでは、何もおこりません。メッセージを表示した方が親切ですね。


Workbook_SheetBeforeRightClick3 border=0

下図は、コードにメッセージを表示するようにしました。


Workbook_SheetBeforeRightClick4 border=0

右クリックしたセルのアドレスを表示する

4. こんどは、右クリックしたシートのシート名とアドレスを表示することにします。

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    MsgBox "右クリックしたのは、" & vbCrLf & _
        "シート名:" & Sh.Name & vbCrLf & _
        "セル位置:" & Target.Address(0, 0) & " です。"
End Sub

Workbook_SheetBeforeRightClick5 border=0