こんにちは。GetKeyStateについて質問させていただきます。
VB6にて、APIの「GetKeyState」を使用し、Tabキーのキー入力判断を行っているのですが、その他の操作(GetKeyStateを判断しているフィールドより
マウス左ボタンにて他のコントロールに移動した時等)に、Tabキーを押して
いないのに、プログラムはTabキーを押した状態のロジックが動作していま
す。下記にそのコードを記述しますので、原因・対処方法がありましたら、
教えてください。
****コード
Private Sub TXT_ATAI_LostFocus()
Dim SUBM0030 As SUBM0030_AREA
Dim X As Variant
If (GetKeyState(vbKeyTab) <> 0) Then
If FRM70.TXT_ATAI.Text <> "" Then
Call MEDIA_DECODE3_SEC(SUBM0030, "1")
If SUBM0030.RETURN_CD <> "0" Then
FRM70.GRD1.Col = 7
FRM70.TXT_ATAI.SetFocus
FRM70.MousePointer = vbDefault
Exit Sub
End If
End If
End If
End Sub
**** 開発環境
・OS:Windows98 4.10.1998
・メモリ:64MB
・CPU:P2-233
・PC:FMV6233-D9
No.2ベストアンサー
- 回答日時:
>If (GetKeyState(vbKeyTab) <> 0) Then
If (GetKeyState(vbKeyTab) < 0) Then
では?
参考URL:http://support.microsoft.com/default.aspx?scid=k …
No.4
- 回答日時:
プロパティのMultiLineをTrueにしていませんか?
その場合、そういうことがあるようです。
対応としましては、
MultiLineをFalseにするか、
下記のようにコードを固定すればいいと思います
intSts = GetKeyState(vbKeyTab) And &HFE
If intSts = 128 Then
MsgBox "Tab"
End If
参考になれば。。
No.3
- 回答日時:
すいませんTodo36さん、その通りです。
リンク先より:If the return value is negative, the key has been pressed.
たしかに・・・m(_ _)m
さらに、GetAsyncKeyState(vbKeyTab) <> "0" ←なぜか文字列で比較している
akfkさんご迷惑かけました、todo36さん、ありがとうございます。
No.1
- 回答日時:
NT40(SP6)+VB5(SP3)環境での回答とさせていただきます。
確かにGetKeyState(vbKeyTab) <> 0の記述ではその現象が発生します、理由は調べていません(--;)
目的がTABキーの状態の取得でしたら、次のコードでも実現可能です。
----------------- 標準モジュール
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
----------------- FRM70
Private Sub TXT_ATAI_LostFocus()
If GetAsyncKeyState(vbKeyTab) <> "0" Then
MsgBox "TAB"
End If
End Sub
------------------
参考になれば幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VB】タブ切り替え時のイベント
-
Visual Basic 6.0 コンボボック...
-
WPFでの時刻入力コントロールに...
-
VB.NETのDropDownListをReadOnl...
-
タブキー押下時のイベントをひ...
-
コンボボックスにキー入力をさ...
-
テキストボックスの入力文字を1...
-
特定のキーを押すまでループさ...
-
DephiでのTextボックスでの数値...
-
IEで、BackSpaceで「戻る」機能...
-
エクセルVBAのテキストボック、...
-
VBでEnterを押すとTabで飛...
-
キーイベントを擬似的に発生さ...
-
C# WMPメディアの終了検知 その2
-
TextboxまたはMaskEditboxでの...
-
Excel VBA マクロ実行中のみテンキ...
-
(VBA)チェックボックスのclick...
-
VBA・WebBrowserコントロールで...
-
フォーカスについてお教えください
-
自作ダイアログボックス中のエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】タブ切り替え時のイベント
-
特定のキーを押すまでループさ...
-
Visual Basic 6.0 コンボボック...
-
一定時間操作されないと自動で...
-
タブキー押下時のイベントをひ...
-
コンボボックスにキー入力をさ...
-
VB.NETでフォームがない...
-
キーイベントを擬似的に発生さ...
-
(VBA)チェックボックスのclick...
-
フォーカスについてお教えください
-
エクセルVBAのテキストボック、...
-
WPFでの時刻入力コントロールに...
-
C# WMPメディアの終了検知 その2
-
KEYPREVIEW=TRUEについて。意味...
-
IEで、BackSpaceで「戻る」機能...
-
テキストボックスの入力文字を1...
-
複数のテキストボックスのカン...
-
VB.NETのDropDownListをReadOnl...
-
自作ダイアログボックス中のエ...
-
Excel VBA マクロ実行中のみテンキ...
おすすめ情報