分単位のインターバル処理を行いたい – プログラミング – Home

分単位のインターバル処理を行いたい
 
通知
すべてクリア

[解決済] 分単位のインターバル処理を行いたい


新人くん
 新人くん
(@新人くん)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

フォーム上のタイマーコントロールから、別クラスファイルに記述した
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になった時に問題の関数を呼び
出す、という方法を考えたのですが
タイマーの起動時間がバラバラになってしまいます。
タイマーの内部インターバル上限「以上」の時間を計測する方法について、
どなたかご教授頂ければ幸いです。


引用未解決
トピックタグ
べーちゃん
 べーちゃん
(@べーちゃん)
ゲスト
結合: 23年前
投稿: 49
 

こんにちは新人くん、べーちゃんです。

次のようなコードでうまくいきませんか。

>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に分指定のインターバルを設定します。


返信引用
べーちゃん
 べーちゃん
(@べーちゃん)
ゲスト
結合: 23年前
投稿: 49
 

一応上記プログラムはVB6で確認していますが、

> 発言される前に「使用上の注意」を必ずお読み下さい。

ご理解願います。


返信引用
新人くん
 新人くん
(@新人くん)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

まだ若干のズレは出ていますが、およそ定時に動くようになりました。
有難うございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました