

Visual Basic について質問です。
「KeyDown」「KeyUp」で、「キーを押した時、離した時に…」というプログラムが書けますよね。
Private Sub Form1_KeyDown(…省略) Handles Me.KeyDown
If e.KeyCode = Keys.A Then
…(1)
ElseIf e.KeyCode = Keys.B Then
…(2)
ElseIf e.KeyCode = Keys.D0 Then
…(3)
End If
End Sub
こんな感じで、
「A」キーが押されたら処理(1)を実行
「B」キーが押されたら処理(2)を実行
「0」キーが押されたら処理(3)を実行
という風なプログラムを作っているのですが、
右の方にある「@」キーや、
カギカッコのキーや、
ひらがなの「れ」「け」「む」「ね」「る」「め」「ろ」のキーや、
ENTERキーの指定方法が分かりません。
このキーが使えないと、プログラムとして成り立たなくなってしまうので、非常に困っています。
↓このページに、いろいろなキーの指定方法が書かれていましたが、
ttp://msdn2.microsoft.com/ja-jp/library/system.windows.forms.keys(VS.80).aspx
どれがどのキーなのか分かりませんでした。
適当にそれらしい物でやってみましたが、どのキーを押しても反応無しでした。
「Enter」キーは、「Enter」で指定するように書かれていましたが、「Enter」キーを押しても無反応でした。
方法を教えていただければ幸いです。
No.3ベストアンサー
- 回答日時:
No.2です。
>とにかく「れ(;,+)」のキーが押された時、離された時、を指定できれば良いのですが、このような指定をすることはやはり無理なのでしょうか…
ボタン操作をラベルへ表示する為、FormにLabelを2つ配置して下さい。
以下のプログラムをコピー&ペーストして下さい。
↓↓↓↓↓↓↓↓↓↓
'ボタンが押された瞬間のイベントをラベルへ表示する
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 13
Me.Label1.Caption = "Form_KeyDown" & "[Enter]が押されたときの処理"
Case 187
Me.Label1.Caption = "Form_KeyDown" & "[れ]が押されたときの処理"
Case 192
Me.Label1.Caption = "Form_KeyDown" & "[@]が押されたときの処理"
Case Else
Me.Label1.Caption = "Form_KeyDown" & " Case " & KeyCode & " を追加する。"
End Select
End Sub
'ボタンが離れた瞬間のイベントをラベルへ表示する
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 13
Me.Label2.Caption = "Form_KeyUp" & "[Enter]が押されたときの処理"
Case 187
Me.Label2.Caption = "Form_KeyUp" & "[れ]が押されたときの処理"
Case 192
Me.Label2.Caption = "Form_KeyUp" & "[@]が押されたときの処理"
Case Else
Me.Label2.Caption = "Form_KeyUp" & " Case " & KeyCode & " を追加する。"
End Select
End Sub
↑↑↑↑↑↑↑↑↑↑
※「KeyPress」は、ボタンを長押ししている間に発生するイベントです。
elseで表示されるKeyCodeをcaseで追加すればボタンを押した時/離した時のイベント処理が可能だと思います。
但し、「Shift+れ=+」等の組合せが必要な操作は、KeyPressを使用しないと処理が困難だと思います。
ご丁寧にありがとうございます。
おかげ様で、少々予定とは異なりましたがプログラムを完成させることが出来ました。
感謝しています(^-^)
No.2
- 回答日時:
WindowsXP VB6.0 です。
「KeyDown」「KeyUp」では、[Shift + れ(;) = +]の様なイベントは取得出来ないと思いますので、「KeyPress」をご使用されてはいかがでしょうか?
【ご参考】
Private Sub Form_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKey1
MsgBox "[1]が押されたときの処理"
Case vbKey2
MsgBox "[2]が押されたときの処理"
Case vbKeyA
MsgBox "[Shift + A]が押されたときの処理"
Case 43
MsgBox "[Shift + れ(;) = +]が押されたときの処理"
Case 59
MsgBox "[れ(;)]が押されたときの処理"
Case 64
MsgBox "[@]が押されたときの処理"
Case 97
MsgBox "[a]が押されたときの処理"
Case Else
MsgBox "Case " & KeyAscii & " を追加する。"
End Select
End Sub
見当違いかもしれませんが、ご参考になれば幸いです。
ご回答ありがとうございます。
KeyPressという物があるのですね。
しかし、私が作ろうと思っているプログラムは、例えば「れ」「+」「;」を区別する必要がありません。
とにかく「れ(;,+)」のキーが押された時、離された時、を指定できれば良いのですが、このような指定をすることはやはり無理なのでしょうか…
「KeyPress」は、数字で指定できるのがとても便利そうですが、キーを押した時の処理と離した時の処理を区別出来ないところが欠点ですね。
質問者の分際で偉そうな事を書いてしまいましたが、ご回答ありがとうございました!
どうにかしてKeyPressを使えないか、いろいろ試してみます。
No.1
- 回答日時:
こんばんわ、Enterなら
e.KeyCode = keys.enter
で判断できるはずですが。
formモジュールでKeyDownイベント
についてよく理解できませんが。
ひらがなは別にして
MsgBox(e.KeyCode)
で値が戻るはずなので
http://hp.vector.co.jp/authors/VA014436/prg_memo …
で返却値からキーステータスを
判断してみては如何でしょうか。
ご回答ありがとうございます。
実は、私は今年5月からVisual Basicを始めたばかりの超初心者です。
これを先に書いておくべきでした。
さっそく、教えていただいたMsgBox(e.KeyCode)を試してみます。
参考URLも貼っていただき、本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
メッセージボックスのボタン名変更
-
ACCESS側からEXCELの書式を設定...
-
VBSで応答不要のメッセージボッ...
-
PostMessageの連続送信
-
Excel(VBA)シート上のコマンド...
-
VBスクリプトで「お待ち下さい...
-
イベントハンドラ処理が終了し...
-
MFCのワーカースレッドとUIスレ...
-
「キャンセル」ボタン付きの処...
-
VB6でフォームをリロードしたい
-
ASP VBScriptでスクリプト実行...
-
Excel VBA 自動的に閉じるMsgBox
-
ファンクションキーのキャンセ...
-
スロットゲームのプログラミング
-
CreateCompatibleDCを初期化時...
-
thunderbirdのメッセージフィル...
-
Application.ScreenUpdating=Fa...
-
VCでウエイトをミリ秒でかけ...
-
Excel VBA 実行中に一瞬フリー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
VBA kernel32 の意味
-
メッセージボックスのボタン名変更
-
ACCESS側からEXCELの書式を設定...
-
VBSで応答不要のメッセージボッ...
-
VBA、UserFormを前面に出力して...
-
【C#】 あるイベントから別イ...
-
Excel VBA で処理中断(DoEvents...
-
PostMessageの連続送信
-
ボタンが押された事を検知する...
-
Application.ScreenUpdating=Fa...
-
エクセルVBAでクリップボード内...
-
VB Loopを一時停止し再開あるい...
-
起動後直に実行するコードはど...
-
DirectX環境下での方向キー同時...
-
Excel VBA 実行中に一瞬フリー...
-
OSシャットダウン時の常駐アプ...
-
マウスのクリックを無視したい
-
エクセルVBAで
-
メッセージボックスの表示につ...
おすすめ情報