VBAでタイマーを作ってみた



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^

今回は【VBAでタイマーを作ってみた】です!前に時計は作ったことがあったので今回は【タイマー】を作ってみました( ^ω^ 笑)

※今回作成したのはカウントダウン式のタイマーです。

VBAのtimer関数については下記で紹介しております。
VBA【Timer関数】夜中(0時)から何秒経過しているか取得する

VBAで時計を実装する方法については以下で紹介しております。
ユーザーフォームに時計をつけてみる

VBAでタイマー作成イメージ

VBAtimerimage

今回はTextBoxに入力した秒数を指定してボタンを押すことによって秒数をLabelに表示するという物になります。

まず時計を作成するにあたり、今回用意するものは

  • TextBoxコントロール・・・・・1つ
  • Labelコントロール・・・・・・1つ
  • commandbuttonコントロール・2つ

この4つだけです大丈夫です。

VBAタイマーのサンプルコード

タイマーのサンプルコードはこちらです、コメントアウトして解説していますので参考程度にご覧ください(。-∀-)

タイマーのダウンロードファイルを用意しましたのでそちらもご覧ください(^^)

Public StopFlg As Boolean
Private Sub CommandButton1_Click()
'タイマー開始ボタン

  If TextBox1.Value = "" Then '空欄チェック
    MsgBox "数値を入れてください"
    Exit Sub
  End If

'処理を実行させる制御
StopFlg = False
'timer開始
Call timer  'タイマーの処理を呼び出す

TextBox1.Value = ""

End Sub

Private Sub CommandButton2_Click()
'キャンセルボタン

'処理を中断させる制御
StopFlg = True

End Sub

Private Sub TextBox1_Change()
'カウントダウン秒数を入れるTextBox

  If IsNumeric(TextBox1.Value) = False Then '数値であるかをチェック
      TextBox1.Value = ""
      Exit Sub
  End If
  
End Sub
Sub timer()
'タイマーの処理
  Dim t As Long
  Dim endTime As Date

    t = TextBox1.Value '時間を指定
    
    endTime = DateAdd("s", t, Time)  'カウントダウンする秒数を指定
    
    Do Until t <= 0  '時間が0になるまでループする
        t = DateDiff("s", Time, endTime)
        Label1.Caption = "残り" & t & "秒です"
        
        DoEvents

  If StopFlg Then 'StopFlgがTrueになると中断の確認
 
      If MsgBox("中断しますか?", vbQuestion + vbYesNo) = vbYes Then
          Exit Do 'Yesが押された場合はループを脱出して終了へ
   Else
        StopFlg = False
      End If
  End If
    Loop
      MsgBox "終了しました"
 
End Sub

VBAタイマーのダウンロード

当サイトの免責事項をお読みになってからお使いください。

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です