[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『タイマー実行中の中断&終了について』(まき)
OS:Windows7 Pro 64bit、 EXCEL2003
いつも色々参考にさせて頂いております。 現在開始ボタンを押して、セルに開始時間を表示させるマクロを組んでいます。 セルには時間表示されますが、マクロが動いている最中に中断や完了ボタンを 押す事が出来ません。(マウスがクルクル回ってしまいボタンが押せない。)
現在のマクロ(抜粋は)次の通りです。ご伝授お願い致します。
Option Explicit Private finishTime As Variant, 累計時間 As Date, EndFlg As Boolean Private 開始時間 As Date, 中断時間 As Date, 完了時間 As Date, 累計 As Variant
Private Sub 施工開始_Click()
'時間計測開始 StartTime = Timer 開始時間 = Time 累計 = Time Do '中断/完了ボタンが押されるまでLOOP DoEvents ' 他のプロセスに明け渡します。 累計時間 = Time Application.ScreenUpdating = True '画面を更新する '現在値欄時間表示 Me.Range("B1") = 累計時間 - 開始時間 Application.ScreenUpdating = False '画面を更新しない If PauseFlg = True Then GoTo 中断処理 '中断時処理 If EndFlg = True Then Exit Do '終了時処理 Do While Timer < 累計 + 1 DoEvents Loop 累計 = 累計 + 1 Loop
動作を考え、シート画面の切替をOFFしようとしました。所々に「Application.ScreenUpdating = False」があった為、制御出来ませんでした。
参考になるか分かりませんが、次の様に修正致しました。
Option Explicit Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub 施工開始_Click() '時間計測開始 StartTime = Timer 開始時間 = Time 累計 = Time Dim nw As Double
PauseFlg = True EndFlg = True 完了Flg = False
nw = Now MsgBox EndFlg Do DoEvents Sheet2.Range("B1").Value = Format(Now() - nw, "h:mm:ss") Sleep 100 If PauseFlg = False Then GoTo 中断処理 '中断時処理 If EndFlg = False Then 完了Flg = True Exit Do End If Loop
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.