キーが何回押されたかその2

解決


初心者  2008-11-26 01:24:22  No: 140888

前回keyDOWNを教えていただき、
Dim A_count As Integer
Dim B_count As Integer

Private Sub Form()

A_count = 0
B_count = 0

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    
    If Shift = 0 Then
        Select Case KeyCode
            Case vbKeyA
                A_count = A_count + 1
                Label_A.Caption = "Aの回数 : " & A_count
            Case vbKeyB
                B_count = B_count + 1
                Label_B.Caption = "Bの回数 : " & B_count
        End Select
    End If
    
End Sub
を教えて頂き大変助かっているのですが【shift】+Aを1回押したらAが1減算したいのですが  vbkeya+vbkeyshiftと定義しているのですがうまくいきません。各ホームページを細かくみたのですが、明確なのがなく、教えていただけませんでしょうか?すみません


matsu  2008-11-26 03:08:21  No: 140889

>【shift】+Aを1回押したらAが1減算したいのですが  vbkeya+vbkeyshiftと定義しているのですがうまくいきません。各ホームページを細かくみたのですが、明確なのがなく、教えていただけませんでしょうか?すみません

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Shiftの値で判断できます。
KeyDownのヘルプに詳細が載っていますので、確認してみてください。


11月  2008-11-26 03:42:51  No: 140890

【shift】を押していない時が If Shift = 0 Then  なのですから

【shift】を押した時は       If Shift = 1 Then  を想像出来るかと。

コンピューターは2進数(0と1)を使う事からもゼロに対するのはイチ。
電気のスイッチ(パソコンの電源スイッチ)にも  0/1  と言う表示が
あったりしますね。  0  は切り(OFF)で1は入り(ON)

Dim A_count As Integer
Dim B_count As Integer

Private Sub Form()

A_count = 0
B_count = 0

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    
    If Shift = 0 Then
        Select Case KeyCode
            Case vbKeyA
                A_count = A_count + 1
                Label_A.Caption = "Aの回数 : " & A_count
            Case vbKeyB
                B_count = B_count + 1
                Label_B.Caption = "Bの回数 : " & B_count
        End Select
     End If
 
     '### ここから追加
     If Shift = 1 Then
        Select Case KeyCode
            Case vbKeyA
                A_count = A_count - 1
                Label_A.Caption = "Aの回数 : " & A_count
        End Select
     End If
     '### ここまで
    
End Sub


GOD  2008-11-26 07:24:14  No: 140891

> 【shift】を押した時は       If Shift = 1 Then  を想像出来るかと
>
Shiftの押下状態表すビット位置は0なので式的にはあっていますが、想像でやったらダメです。
引数 Shift には Shift, Ctrl, Alt のキー状態が入ってますのでmatsu さんの言うようにヘルプを参照して下さい。


初心者  2008-11-26 18:22:29  No: 140892

matsuさん、11月さん、GODさん大変ありがとうございました。自分でできる限り、いろいろな方法で文献をかなり調べたのですが、どうしてもわからず相談させて頂ました。どうぞご理解下さい。matsuさんご指導ありがとうございます。11月さん、プロシージャー大変たすかります。GODさん「想像」でやっていたので指摘ありがとうございました。私はVBを勉強してからまで何日かなのですが、このプロシージャーにより何十名もの従業員の手間が楽になります。周りに理解できる人がいなかったので大変助かりました。またVBがだんだん楽しくなってきました。みなさんありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加