[[20150922190811]] 『ユーザーフォームのキーイベントでマウス右クリッ』(田吾作) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ユーザーフォームのキーイベントでマウス右クリックを捕捉できない』(田吾作)

 こんばんは、よろしくお願いいたします。

 コマンドボタンクリックでコマンドボタンを非表示にし、キーボードでのキー操作で再びコマンドボタン
 を表示するコードを作成中です。

 ユーザーフォームのキーイベントは、ユーザーフォーム上に表示されているコントロールが一つでも
 あると、コントロールの方のキーイベントとしてとらえられるようで、他のコントロールの表示・非表示
 切替えのコマンドボタンも非表示にしないとユーザーフォームのキーイベントとして機能しないようです。

 ↓はテスト用にユーザーフォーム上にコマンドボタン一つのみ配置しています。

 ユーザーフォーム上でESCキー(vbKeyEscape)を押したときはイベントが起動しコマンドボタンが表示
 されるのですが、マウスの右クリック(vbKeyRButton)はイベントが起動しません。

 ネット検索しても、ユーザーフォームのキーイベントでマウスの右クリックは捕捉しないというような記述
 は見られません。

 念のため、二つのキーボードで試しましたが結果は同じでした。

 原因が分かりましたらご教示お願いいたします。

 Private Sub CommandButton1_Click()
   Me.CommandButton1.Visible = False
 End Sub

 Private Sub UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  Select Case KeyCode
   Case vbKeyEscape
    Me.CommandButton1.Visible = True
   Case vbKeyRButton
    Me.CommandButton1.Visible = True
  End Select
 End Sub

< 使用 Excel:Excel2007、使用 OS:WindowsVista >


 >>マウスの右クリック(vbKeyRButton)はイベントが起動しません。

 マウスのクリックはキー入力ではないので、UserForm_KeyUp では捕捉できないだけでは?

 UserForm_MouseUp で受けると、もちろんイベントをキャッチできますが。

(β) 2015/09/22(火) 20:06


 βさん、ご回答ありがとうございます。

 UserForm_MouseUpイベントで捕捉できました。
 ありがとうございました。

 Private Sub UserForm_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  If Button = 2 Then Me.CommandButton1.Visible = True
 End Sub

(田吾作) 2015/09/22(火) 20:19


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.