タイマーコントロールの使い方

 パソコン活用研究BASIC&VB&EXCEL達人道場

タイマーコントロール

タイマーコントロールの使い方について

旧来のBASICにも時間を計測したりインターバルをとるのに、on timeのようなコマンドがありましたが、Visual Basicではタイマーコントロールでこれらの実装が簡単になりました。


1 タイマーの仕様
タイマー(Timer)を使うと、Intervalプロパティに設定した時間(ミリ秒)が経過するたびに、タイマーイベントが発生します(Timerプロシージャが呼び出される)。タイマーイベントを禁止するにはEnabledプロパティをFalseにします。

主に設定するプロパティは以下の2つだけです。
Enabled True タイマーイベントを発生  False 禁止
Interval タイマーイベントの発生間隔をミリ秒で設定。設定値は1〜65535(約65秒)。
       0を設定すると、タイマーイベントは発生しない。


インターバルで呼び出して実行させたい内容を、Timerプロシージャに記述します。
Private Sub Timer1_Timer()
...ここに実行したいコードを書く....
End Sub


2 簡単なプログラム
すごくシンプルながら、実はかなり使えるプログラムを1個作ってみましょう。

ある時刻(「戻り時刻」)を決め、そこから1分経過すると、システム時間を戻り時刻に戻すプログラムです。すなわち、システム時間を止めたままにするプログラムです。用途はいろいろありますので、まあ、各自工夫してみて下さい。

TEXT1は現在時刻の表示用です。
TEXT2に戻したい日付、TEXT3に戻したい時刻を設定します。
[SET]ボタンを押すと10秒経過するたびに、システムの現在時刻をTEXT3に設定した時刻に戻します

(図1)


コードはたったのこれだけです。
Timer1はIntervalを5000に設定しており(5秒毎にインターバルイベントが発生)ます。
Form_Loadプロシージャで使用している変数f、およびCommand1_Clickプロシージャの変数settimeはPublic変数です。

fは時刻を戻す動作のフラグとして使用しており、f=1になると、動作ONとします。

[SET]ボタンを押すと、fが1にセットされ、1分毎にシステムの現在時刻をText3に設定した時刻(変数settimeに代入されている)に戻す動作になります。

Begin VB.Timer Timer1
Interval = 5000
Left = 120
Top = 840
End

Public f As Integer, tcount As Integer, settime As String

Private Sub Form_Load()
f = 0
End Sub


Private Sub Command1_Click()
settime = Text3.Text
Date$ = Text2.Text
f = 1
End Sub


Private Sub Timer1_Timer()
Text1.Text = Time
If f = 1 Then tcount = tcount + 1
If tcount >= 11 Then
tcount = 0
Time = settime
End If
End Sub


これで、システム時間を進ませないようにすることができます。


TopPage > Visual BasIc&Excel活用研究目次