- ベストアンサー
VBでキーボード入力をフォーム上で対応させるには
Microsoft VisualBasic6.5でプログラミングしています。 キーボード入力を確認するツールを作成しようと思っています。 UserForm上に、CommandButtonを2個配置して それぞれに 数字の 1と2を設定。 キーボードの1と2を押すと、CommandButtunが マウスで押されたときのように表示する方法が わかりません。 プログラム初心者です。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
よく読みかえしてみたらVB6.5って VBAのものですね。 (userform commandbutton )と書いてありましたね。 ふつうはこんな使い方をしないと思いますが 参考にしてください。 Private Sub UserForm_Initialize() CommandButton1.Enabled = False CommandButton2.Enabled = False CommandButton1.BackColor = &H0 CommandButton2.BackColor = &H0 End Sub Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) CommandButton1.Caption = "" CommandButton2.Caption = "" If KeyAscii = 49 Then CommandButton1.BackColor = &HFF0000 CommandButton2.BackColor = &HFF CommandButton1.Caption = 1 End If If KeyAscii = 50 Then CommandButton1.BackColor = &HFF CommandButton2.BackColor = &HFF0000 CommandButton2.Caption = 2 End If End Sub
その他の回答 (3)
- vbhanatyan
- ベストアンサー率79% (70/88)
>UserForm上に、CommandButtonを2個配置して >それぞれに 数字の 1と2を設定。 >キーボードの1と2を押すと、CommandButtunが >マウスで押されたときのように表示する方法が >わかりません。 数字キーの 1 だけでは、そのようにはできません。 Alt + 1 を押すならば、上記のように設定はできます。 その場合、CommandButton のキャプションには、 &1 と &2 の ように設定して下さい。 実行するとボタンの表面の 1 にアンダーラインが表示していれば Alt キー と 1 キー を同時に押すと、CommandButton1 をクリック した場合と同じになります。
お礼
ご回答ありがとうございます。 どうしても1つのキーを押すアクションで希望の動作が できないか、質問させていただきました。 別の方からの回答で希望の動作を確認できました。 ありがとうございました。
こんにちは。 VB6は持っていませんので参考程度に。 フォームでキーイベントを受け取れるようにして、このイベントで処理をする、というのはどうですか? フォームでもキーイベントを受け取るようにする http://jeanne.wankuma.com/tips/vb6/form/keypreview.html
お礼
ありがとうございます。 こちらに記載されているものを使ってみましたが やはりうまく動きません。 大変恐縮ですが、そのものズバリのソースがあれば 教えていただきたいと思います。
- DreamyCat
- ベストアンサー率56% (295/524)
keydown keypress keyupなどのイベントプロシージャの中から どれか適切なものを選べばkeycodeかkeyascで取得できるはずだったと思います。 (もう10年近く触っていないので・・・)
お礼
早々にご回答ありがとうございます。 いろいろネット上で調べ、教えていただいたコマンドも 試してみましたがうまく反応しません。 (ボタンをマウスクリックしたときのように、ボタンがへこむ感じ) 簡単なサンプルを提示いただけると幸いです。
お礼
DreamyCatさん ソースの提示ありがとうございます。 早速動作確認しましたところ、こちらの希望通りの 動作を確認できました。 これをベースに完成させたいと思います。 本当にありがとうございました。 ※ また作成途中に疑問点等が出てくると思いますが その際はまた質問させていただきたいと思います。 よろしくお願いいたします。