キーダウン式タイピング

☆押したキーをリアルタイムでラベルに表示する。
■フォームに以下のようにラベルを2個用意する。↓


■フォームをダブルクリックしコードを表示する。↓


■右上のコンボボックスからKeyDownを選択する。↓


■このようにコードが表示される。↓


(解説)追加されたForm_KeyDownとはフォーム上でキーが押された時「Private Sub~End Sub」の間のコードが実行される。

■コードを次のように書き換える。↓
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
   Label2.Caption = KeyCode
End Sub


(解説)フォーム上で押されたキーのキーコードをLabel2.Captionに表示する。またPrivate Sub Form_Load() End Subは消しても構わない。

■開始ボタンを押してプログラムを実行する。↓


(解説)画面は「A」をおしたところ、「A」のキーコードは65と言うことが分かる。

■コードを次のように書き換える。↓
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
   Label2.Caption = Chr(KeyCode)
End Sub


(解説)Chr(KeyCode)の部分でキーコードをキャラクターコードに変換する。例えば「65=A」、「66=B」とされる。

■開始ボタンを押してプログラムを実行する。↓


(解説)Zキーを押したところZのキーコードは90なのでKeyCodeに90が代入されChrによってZに変更された。

☆問題と同じキーを押したとき正解と表示し違うキーを押したとき不正解とする。
■コードの右上のコンボボックスからLoadを選択しLoadを追加する。↓


■コードを書き換える。↓
Private Sub Form_Load()
   Label1.Caption = "A"
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
   If Label1.Caption = Chr(KeyCode) Then
      Label2.Caption = "正解"
   Else
      Label2.Caption = "不正解"
   End If
End Sub


(解説)フォームを表示するときにLabel1.Captionに”A”を代入する。そして、キーが押された時Label1.Captionと押されたキーが同じときLabel2.Captionに「正解」と代入し、違うキーを押したときLabel2.Captionに「不正解」を代入する。

■開始ボタンを押してプログラムを実行する。↓
  

(解説)Aを押すと正解、ほかのキーを押すと不正解。

∵ダウンロード file1.zip

☆問題をランダムに表示。
■コードを書き換える。↓
Private Sub Form_Load()
   Randomize
   Label1.Caption = Int(Rnd(1) * 26) + 1
End Sub


(解説)Rndomizeは乱数ジェネレータを初期化 (乱数系列を再設定) するもの。乱数を使うときに書き込む。
(解説
)Int(Rnd(1) * 26) + 1のRnd(1)で0~1未満までの乱数が発生する。その後、乱数を26倍させ、Intで整数化させて1を加えるた処理。結果1~26までの乱数を発生させている。

■実行して1~26までの乱数が発生するか確認する。

■フォームのラベルを次のように追加・変更する


(解説)問題と回答はLabelを貼り付けCaptionを変更させて表示。オブジェクト名は変更しなくて良い。

■コードを書き換える。↓
Private Sub Form_Load()
   Randomize
   Label1.Caption = "A"
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
   Label2.Caption = Chr(KeyCode)
   If Label1.Caption = Chr(KeyCode) Then
      Label1.Caption = Chr(Int(Rnd(1) * 26) + 65)
   End If
End Sub


(解説)押したキーがLabel2.captionに代入され、Label1.Captionと押したキーが同じときLabel1.CaptionにA~Zまでの乱数を代入させている。

■開始ボタンを押してプログラムを実行する。↓


(解説)キーを押すとそのキーが回答のところに表示される。もしGが押された時は次の問題がGが表示されている場所に表示される。

∵ダウンロード file2.zip