エクセル版タイマー
Access VBAに先立ち公開します。
Excel版のタイマーを作ってほしいとう要望がありました。
連載途中ですが先に公開します。
Access版と同様の機能を持たせました。
利用する関数はAccess版と同じです。
ただし、タイマーイベントは使えないので
Timer()関数で経過時間を判定します。
画面例とコードは以下の通りです。
コードは以下の通りです
- Dim stf As Integer 'stop用フラグ
- Private Sub CommandButton1_Click()
- stf = 0
- Call my_Procedure
- End Sub
- Private Sub CommandButton2_Click()
- 'Resetボタンで初期化
- dt = TimeSerial(Range("A1"), Range("B1"), Range("C1"))
- Me.TextBox1 = dt
- End Sub
- Private Sub CommandButton3_Click()
- stf = 1
- End Sub
- Private Sub Label2_Click()
- End Sub
- Private Sub UserForm_Initialize()
- '初期化
- dt = TimeSerial(Range("A1"), Range("B1"), Range("C1"))
- Me.TextBox1 = dt
- Me.Label2.Caption = dt
- End Sub
- Public Sub my_Procedure()
- Dim t_start As Double
- Dim t_next As Double
- Dim t_timer As Double
- t_start = Timer()
- t_next = t_start
-
- Do
- If t_next - t_start > Range("A1") * 3600 + Range("B1") * 60 + Range("C1") Then Exit Do
- If stf = 1 Then Exit Do 'stopボタンが押されたかどうか
- t_timer = Timer() - t_next
- If t_timer > 1 Then
- t_next = Timer()
- dt = DateAdd("s", "-1", dt)
- Me.TextBox1 = dt
- Range("A4") = dt
- End If
- DoEvents
- Loop
- End Sub
update:2024.03.30