動く文字をタイピング

☆ラベルの位置制御を確認

■フォーム上にラベル(Label1)を貼り付ける。↓


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

■コードを書き換える。↓
Private Sub Form_Load()
   
'フォーム右から1000目盛の場所へ移動
   Label1.Left = 1000
   
'フォーム上から2000目盛りの場所へ移動
   Label1.Top = 2000
End Sub


■プログラムを実行する。


(解説)ラベルが(1000、2000)に移動している

■フォーム上にタイマーオブジェクト(Timer1)を配置する。↓



☆ラベルを動かす

■タイマーオブジェクト(Timer1)を1クリックしてオブジェクトプロパティのIntervalを100に変更する。


(解説)プロパティの下にIntervalの説明が載っている。Interval = 100ということで間隔が0.1秒になる

■タイマーオブジェクト(Timer1)をダブルクリックしコードを書き換える。↓
Private Sub Form_Load()
   Label1.Left = 1000
   Label1.Top = 0
End Sub

Private Sub Timer1_Timer()
   
'100目盛プラスしていく
   Label1.Top = Label1.Top + 100
End Sub


■プログラムを実行する。↓


(解説)Label1が上から下へ0.1秒ごとに100目盛りごとに降りていく。

∵ダウンロード file1.zip


☆動く文字をタイピング

■コードを書き換える。↓
Private Sub Form_Load()
   '乱数初期化
   Randomize
   Label1.Left = 1000
   'prirndを呼び出す
   Call prirnd
End Sub

Private Sub Timer1_Timer()
   '100目盛プラスしていく
   Label1.Top = Label1.Top + 100
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
   'Chrでキャラコードへ変換
   utu = Chr(KeyCode)
   'もし変数utuとLabel1.Captionが同じ時
   If utu = Label1.Caption Then
      'prirndを呼び出す
      Call prirnd
   End If
End Sub

'乱数を発生させる
Private Sub prirnd()
   Label1.Top = 0
   'A~Zまでの乱数をラベルに表示(Rndが乱数、Intは整数化、Chrはキャラコード)
   Label1.Caption = Chr(Int(Rnd(1) * 26) + 65)
End Sub


■プログラムを実行する。↓


(解説)A~Zまでの乱数が上から降りてくる。表示されたアルファベットを押すと違うアルファベットが出てくる。

∵ダウンロード file2.zip


☆タイプ文字を3個の増やす

■ラベル(Label1)をクリックしオブジェクト名をlblmojiに変更する。


■フォーム上のlblmojiを右クリックしコピー貼り付けでラベルを3個にする。(コントロール配列にしますか?ときかれるので「はい」にする)↓




(解説)各ラベルを指定するときはlblmoji(0)、lblmoji(1)、lblmoji(2)のようにする。
(解説)各ラベルの配列数はオブジェクトプロパティのIndexで指定できる

■コードを書き換える。↓
Private Sub Form_Load()
 
  '乱数初期化
   Randomize

   '
変数iを0から2まで繰り返す
   For i = 0 To 2
      
'prirndを呼び出し、変数iを渡す
      Call prirnd(i)
   Next i
End Sub

Private Sub Timer1_Timer()
   For i = 0 To 2
      lblmoji(i).Top = lblmoji(i).Top + 100
   Next i
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  
 'Chrでキャラコードへ変換
   utu = Chr(KeyCode)
   For i = 0 To 2
      
'もし変数utuとLabel1.Captionが同じ時
      If utu = lblmoji(i).Caption Then
      
   'prirndを呼び出す
         Call prirnd(i)
      End If
   Next i
End Sub

'乱数を発生させる(変数iから受け取ったデータは変数xに入る)
Private Sub prirnd(x)
   lblmoji(x).Top = 0
  
 'A~Zまでの乱数をラベルに表示(Rndが乱数、Intは整数化、Chrはキャラコード)
   lblmoji(x).Caption = Chr(Int(Rnd(1) * 26) + 65)
End Sub


■プログラムを実行する。↓


(解説)3つの文字がそれぞれ上から下へ移動する。

∵ダウンロード file3.zip