[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/01/21(Sun) 02:41
投稿者名:モグメント
Eメール:
URL :
タイトル:
Shift
キーストロークについて勉強中なんですが

Private Sub Command3_KeyDown(KeyCode As Integer,  As Integer)
If KeyCode = vbKeyRight Then
Text1.SetFocus
    End If
End Sub

これだとSHIFTを押しながら右を押さないと、処理しません
Shift As Integerが余分なのかと思い、消すとエラーになってしまいます。

右キーだけで、処理は無理なのでしょうか

この辺の仕組みがまだ理解できていません

勉強不足ですが、どなたかわかりやすく解説していただけたらとうれしいです 

投稿時間:2007/01/21(Sun) 09:05
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: Shift
> 右キーだけで、処理は無理なのでしょうか

Windowsの仕様で矢印キーやEnterキー等の一部特殊キー押下は取得できません。
(すでにWindowsがフォーカス移動用に使っている)
(イベントが発生しない)下記のようにして確認して見て下さい
Private Sub Command3_KeyDown(KeyCode As Integer, Shift As Integer)
   Debug.Print KeyCode
End Sub

又、疑問に思った事等があれば、思いつく語句で下記のように検索して
調べる習慣を身につけて下さい。
http://tinyurl.com/2qfd6z


下記は、転記間違いですか?
>Private Sub Command3_KeyDown(KeyCode As Integer,  As Integer)
> If KeyCode = vbKeyRight Then

コードを掲載する場合は実際に使っているコードをそのまま、コピーしてペースト
するようにして下さい。

どうしてもそのような操作が必要なら下記を試して見て下さい。

Option Explicit

Private Declare Function GetKeyState Lib "user32" _
    (ByVal nVirtKey As Long) As Integer

Private Sub Command3_LostFocus()
   If GetKeyState(vbKeyRight) < 0 Then
      Text1.SetFocus
   End If
End Sub