Excel版タイマー
Excel版のタイマーを作ってほしいとう要望がありました。
連載途中ですが先に公開します。
Access版と同様の機能を持たせました。
利用する関数はAccess版と同じです。
ただし、タイマーイベントは使えないので
Timer()関数で経過時間を判定します。
画面例とコードは以下の通りです。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
Dim dt As Date 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 |
コメントを残す