• ベストアンサー

Ctrl + Clickについて

コマンドボタンを『クリック』する時とは別の処理を『Ctrl + クリック』で行いたいのですが、どうコーディングすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • don_cha
  • ベストアンサー率34% (139/407)
回答No.3

すみません、サンプルプログラムバグってました。 ifの部分を以下の内容と差し替えてください。 誤) If (chk <> 1) Then 正) If ((chk And &H8000) = &H8000) Then

clover2
質問者

お礼

ありがとうございました。 動作確認できました。 ただ、修正コメント(現象,原因)を追加していただけると、 もっと嬉しかったです。

その他の回答 (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イベントを使用すると、 特殊なキーが押されていることを判断できますので、 そちらを使用したらどうでしょうか?

関連するQ&A