#393 ボタンの右クリックでショートカットメニューを表示させない方法 フォーム、VBA

コマンドボタンにおいては、左ボタンのクリックによって処理を実行させる「クリック時イベント」が通常もっともよく使われますが、「マウスボタンクリック時」イベントを使うことによって、右ボタンがクリックされたときだけ、特定の処理を実行させることができます。

一方、Accessの基本的な機能として、マウスの右クリックは"ショートカットメニューの表示"を行うことになっています。そのため、オリジナルの処理をさせたい場合にも、その処理の実行とともにショートカットメニューも表示されてしまうという問題が起きます。

そのような場合、Docmdオブジェクトの「CancelEvent」メソッドを用いることで、一連のオリジナルの処理を実行させるだけで、ショートカットメニューは表示させないようにすることができます。このメソッドを実行することによって、このイベントプロシージャを呼び出すイベントが発生しなかったことになります。つまり右ボタンがクリックされなかったことになり、ショートカットメニューも表示されません。ただし、それをイベントプロシージャの先頭で実行しても、以降のコードは通常通り実行されます。

コード例:

Private Sub cmd実行_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'[実行]マウスボタンクリック時

  'イベントをキャンセルしてショートカットメニューを表示させない
  DoCmd.CancelEvent

  If Button = acRightButton Then
    '右クリック時のみ処理を実行
    '****************************
    ' ここで一連の処理
    '****************************
    End If
  End If

End Sub

| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved