No.1
- 回答日時:
Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
'Aだったら
If KeyCode = vbKeyA Then
'主処理
End If
End Sub
となりますかね。(^^)
でもこれだと コマンドボタンの上にフォーカスが来ているときじゃないと反応しないのでタイピングを作成するなら Form_KeyDown のほうが良いかもしれません。
No.2
- 回答日時:
Form上に1つコマンドボタンを貼りつけ、それをコピーしてコマンドボタンを増やす。
2つ目の時に、コントロール配列にしますかと聞いてくるので「はい」。コマンドボタンの各Captionを「a,b,c,d・・・」と設定する。
最初のコマンドボタンをダブルクリックして
Private Sub Command1_Click(Index As Integer)
s = Array("a", "b", "c", "d")
MsgBox s(Index)
End Sub
とする。
Form上の「a」のボタンをクリックすると「a」と表示できる。
参考になれば。
No.3
- 回答日時:
補足ですが,
私の場合,なるべくフォーム中に入れる「フォーカスを受け取れるオブジェクト」を極力減らすようにしています。例えば,フォーム中のフォーカスを受け取れるオブジェクトはPicturebox1個だけにして,そこにKeyDownを付ける。文字表示などはすべてLabelとかのフォーカスの受け取れないオブジェクトにする。とかです。
また,その「フォーカスを受け取れるオブジェクト」は,できればCommandButtonはやめたほうがいいです(Enterキーやスペースキーに反応してしまうからです)。
No.4
- 回答日時:
Keycodeを取っているのでキーコードで判断されたらいかがですか?
そうしておけば65から91までしか受けつけないとか制御しやすいでしょう。
しかし、一番の難関は2文字同時に押した時とかローマ字カナ変換などの面倒な所でしょう。
ちなみに
A-Zまでを入力してEntを押すと掛かった秒数を表示するプログラムを1行で組んだ事があります。
頑張ってください。
No.5ベストアンサー
- 回答日時:
VB6.0、5.0の
コマンドボタン、
オプションボタン、
コンボボックスなど、
VB標準のOCX(コントロール)は
KeyDown,KeyPress,KeyUpイベントにバグ?
があります。
実際、
それぞれのイベントが呼び出されないです。
Picturebox+Labelで
画面を表示し、
Private Sub Form_KeyPress(KeyAscii As Integer)
Dim intX1 As Integer
Dim intX2 As Integer
Dim intX3 As Integer
Dim intX4 As Integer
intX1 = Instr(1, _
"1234567890-^\", _
Ucase$(Chr$(KeyAscii)), _
vbTextCompare)
intX2 = Instr(1, _
"QWERTYUIOP@[", _
Ucase$(Chr$(KeyAscii)), _
vbTextCompare)
intX3 = Instr(1, _
"ASDFGHJKL;:]", _
Ucase$(Chr$(KeyAscii)), _
vbTextCompare)
intX4 = Instr(1, _
"ZXCVBNM,./", _
Ucase$(Chr$(KeyAscii)), _
vbTextCompare)
If intX1 > 0 Then
MsgBox "1行目の左から" & _
Format$(intX) & _
"個目のキーが押されました。", vbOkOnly
End If
If intX2 > 0 Then
MsgBox "2行目の左から" & _
Format$(intX) & _
"個目のキーが押されました。", vbOkOnly
End If
If intX3 > 0 Then
MsgBox "3行目の左から" & _
Format$(intX) & _
"個目のキーが押されました。", vbOkOnly
End If
If intX4 > 0 Then
MsgBox "4行目の左から" & _
Format$(intX) & _
"個目のキーが押されました。", vbOkOnly
End If
End Sub
というのを
ステップ実行して動きを確かめてみてはどうでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA(エクセル)で自動的にボタン...
-
VBA シートのボタン名を変更し...
-
フォームの再読み込み
-
コマンドボタンやイメージにマ...
-
VBAで多数のプログラムを一つの...
-
CommandButtonのCaptionを変化...
-
MouseDownとMouseMoveイベント...
-
マクロでタイムレコーダーを作...
-
VBAのボタンの位置が変わって困...
-
セルをマクロのボタンにしたい。
-
アイコンとボタンの違い
-
ユーザーフォームに別シートか...
-
ボタンの表示を改行表示したい
-
教えてボタンの作り方について
-
[VB.net] ボタン(Flat)のEnable...
-
VBA CommandButtonの文字ずれ
-
Excel VBA Application.caller...
-
C# フォームを横にずらす
-
DO~LOOP でのLOOP...
-
オプションボタンによっての表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
フォームの再読み込み
-
アイコンとボタンの違い
-
VBAのボタンの位置が変わって困...
-
閉じると「+」になり開くと「-...
-
Excel VBA Application.caller...
-
Access VBA でデータペーストを...
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
VBAでオプションボタンによって...
-
ボタンをマウスで押し続けたと...
-
[Excel VBA]コマンドボタンの入...
-
VBA IE ダウンロード ダイアロ...
-
プロシージャからイベントをコ...
-
チェックボックスで指定出来る...
-
+ボタンの名称は?
-
VBA でのボタンの移動について
おすすめ情報