VBA マクロ タイマーカウントダウンの自動停止
マクロの初心者です。どなたか教えていただけないでしょうか?
お手数おかけします。
2つ質問があります。
1つ目の質問:
Option Explicit
Private TB As Integer
Private MacroStop AS Boolean
Private ZAN As Integer
Private C As Integer
・・・
Sub 現在時刻から時分秒を取り出す()
・・・・
End Sub
Sub 時間計算()
・・・・
Range(”E8”) = TB
Sub 指定時刻にマクロを実行する()
mywait = 1 ’1秒
指定時刻 = Now + TimeSerial(0,0,mywait)
If ZAN >= 0 Then
If MacroStop = False Then
Application.OnTime 指定時刻,"指定時刻にマクロを実行する
Call やりたいこと
Else
End If
Else
MacroStop = False
End If
Range("K16" ) = Range("K16") + 1
End Sub
Sub やりたこと()
C = C +1
ZAN = TB - C
・・・・
Total= HH&”:”&MM&”:”SS
Range(”D12”)=Total
Sub タイマー停止()
MacroStop = True
Range(”E8”).ClearContents
Range(”D12”).ClearContents
End Sub
仮にTBの初期値が28800(8時間)、Cの初期値が0だとして、
タイム イズ オーバーになった場合、
たとえばZAN < 0
のとき、
タイマーマクロが自動停止し、
Range(”K16”) = Range(”K16”) + 1
とフラグをたててカウントアップさせるなど考えましたが、
ZANは、28800、28799、28798・・・トと正常にカウントダウンし、
自動では止まりますが,
Total = 0:0:-1でおわり、(0:0:0でおわりたい)
しかもフラグカウンターは1,2,3,4・・・と秒刻みでカウントアップしてしまいます。
カウンターは、1回のタイマーが終われ(28800秒たてば)ば、1カウントアップさせたいのです。
どのようにプログラムを組めば、タイマーが0:0:0で自動停止し、
またカウンターもタイマー(暫定:28800秒=8時間)たてば1カウントアップさせることが
できるのでしょうか?
2つ目:タイマー作動中は、画面が強制的に左寄せ・上詰めになってしまい、自由にスクロール
できません。どうすれば自由にスクロールさせることができるのでしょうか?
以上、2点です。よろしくお願いします。
お礼
有難うございました。早速リチウム電池を取り替えました。 簡単なことで十分承知しながら、めったに電池切れまで使う ことがなく、みっともなくも「慌ててしまいました」。御礼。