フォーム上のタイマーコントロールから、別クラスファイルに記述した
Public subを一定時間毎に呼び出したいのですが、ちと行き詰まってます。
Dim count as integer
Private Sub Form load()
......Time.Interval = X * 1000
count=0
Private Sub Time.Timer()
count = count + 1
if count < 60 then Exit Sub
Else
call Targetsub
count = 0
End if
(別クラスファイル)
Public Sub Targetsub()
......
タイマーは1分強以上の時間を直接計測できないとの事なので、
例えば呼び出し間隔をX分と入力した場合、タイマー自体のインターバルはX秒に設定して、
タイマー起動時にカウント変数を1追加、カウントが60になった時に問題の関数を呼び
出す、という方法を考えたのですが
タイマーの起動時間がバラバラになってしまいます。
タイマーの内部インターバル上限「以上」の時間を計測する方法について、
どなたかご教授頂ければ幸いです。
こんにちは新人くん、べーちゃんです。
次のようなコードでうまくいきませんか。
>Private mdtmNext As Date
>
>Private Sub Form_Load()
>
> mdtmNext = CDate(Format(DateAdd(n, X, Now), yyyy/mm/dd hh:nn:00))
> Timer1.Interval = 5000
>
>End Sub
>
>Private Sub Timer1_Timer()
>
> Dim dtmNow As Date
>
> dtmNow = Now
> If mdtmNext < dtmNow Then
> '何らかの処理
> mdtmNext = CDate(Format(DateAdd(n, X, Now), yyyy/mm/dd hh:nn:00))
> End If
>
>End Sub
タイマのインターバルはとりあえず5秒に設定していますが、頻繁すぎると
他の処理に差し障るので適当な値を設定したほうがいいです。
Xに分指定のインターバルを設定します。
一応上記プログラムはVB6で確認していますが、
> 発言される前に「使用上の注意」を必ずお読み下さい。
ご理解願います。
まだ若干のズレは出ていますが、およそ定時に動くようになりました。
有難うございました。