- ベストアンサー
Ctrl + Clickについて
コマンドボタンを『クリック』する時とは別の処理を『Ctrl + クリック』で行いたいのですが、どうコーディングすればいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
すみません、サンプルプログラムバグってました。 ifの部分を以下の内容と差し替えてください。 誤) If (chk <> 1) Then 正) If ((chk And &H8000) = &H8000) Then
その他の回答 (2)
- don_cha
- ベストアンサー率34% (139/407)
回答No.2
Win32APIのGetKeyStateを使って、クリックイベント時にコントロールキーが押されているかを確認する方法があります。 以下、サンプル Option Explicit Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Private Const VK_CONTROL = &H11 Private Sub Command1_Click() Dim chk As Integer chk = GetKeyState(VK_CONTROL) If (chk <> 1) Then MsgBox "Ctrlキーが押されています" Else MsgBox "マウスクリックのみでした" End If End Sub
- kentaoru
- ベストアンサー率56% (13/23)
回答No.1
Clickイベントでは、Ctrlキーなどの特殊なキーが押されていることを判断できません。 MouseDown,MouseUpイベントを使用すると、 特殊なキーが押されていることを判断できますので、 そちらを使用したらどうでしょうか?
お礼
ありがとうございました。 動作確認できました。 ただ、修正コメント(現象,原因)を追加していただけると、 もっと嬉しかったです。