見出し画像

エクセルにタイマー機能を設定VBA【作り方とダウンロード】

割引あり

VBAを使ってエクセルにタイマー機能を設定する方法を解説しています。


今回紹介するタイマーVBAの概要がこちら

  • ユーザーフォームのテキストボックスにカウントダウンタイマーを表示

  • 制限時間を自由に設定できる

  • 「タイムアップ後〇〇する」という処理をする


エクセルにタイマーを設定して〇〇したい!と考えている方におすすめのVBAです。


カウントダウンタイマーVBAの作り方


カウントダウンタイマーVBAは以下のVBAから構成されています。

  • 時間を変数に格納するVBA

  • 時間をテキストボックスに表示するVBA

  • タイムアップするまでカウントダウンを繰り返すVBA

  • タイムアップ後〇〇するVBA

個別に分けて考えるとスムーズにカウントダウンタイマーVBAを設定することができます。


設定されているTimerVBAがこちら

Sub Timer()
    Dim L As Date, cnt As Double
    L = DateAdd("h", Range("A4"), Time)
    L = DateAdd("n", Range("C4"), L)
    L = DateAdd("s", Range("E4"), L)
    rng = 0
    UserForm1.Show vbModeless
    Do
    cnt = DateDiff("s", Time, L) + rng
    UserForm1.TextBox1 = Format(TimeSerial(0, 0, cnt), "hh:nn:ss")
    If UserForm1.TextBox1 = "00:00:00" Then Exit Do
    DoEvents
    Loop
    Call CloseMe
Eンd Sub


設定されているCloseMeVBAがこちら


Sub CloseMe()
ActiveWorkbook.Save
ThisWorkbook.Saved = True
If Workbooks.Count <= 1 Then
Application.Quit
Else
ThisWorkbook.Close False
End If
End Sub


時間を変数に格納するVBA

TimerVBAの3行目から5行目で、制限時間を変数Lに格納しています。




時間をテキストボックスに表示するVBA

TimerVBAの7行目で、UserForm1を表示する。

TimerVBAの10行目で、Format関数でUserForm1のテキストボックスに時間を表示する。



タイムアップするまでカウントダウンを繰り返す

TimerVBAの8行目と13行目で、制限時間が0になるまで処理を繰り返している。


タイムアップ後〇〇するVBA

TimerVBAの14行目で、CloseMeVBAを呼び出してエクセルを閉じる処理を行っている


以上でカウントダウンタイマーの作成が完了です。


関連記事「エクセルにタイマーを設定するVBA」では、図を使ってVBAの導入方法を解説しています。

自分でカウントダウンタイマーVBAを導入してみたい!という方は参考にしてみてください。


カウントダウンタイマーの導入事例


カウントダウンタイマーVBAが導入された2つの事例をご紹介します。


こんな処理ができたら便利なのになぁー!

という要望から開発したものなのでエクセル業務の効率をアップさせたいと考えている方はご自分の作業に当てはめながら確認してみてください。


いざというときすぐに使えるカウントダウンタイマー

カウントダウンタイマーは使いたいタイミングで表示したい!常に表示されていると作業の邪魔になる

このような環境に導入したのが、

ボタンクリックでタイマーを表示。制限時間をユーザーフォーム内で設定するVBA

です。


ユーザーフォームで完結するカウントダウンタイマーVBAの概要がこちら

  • ボタンのクリックでタイマーが表示

  • 制限時間の設定は湯量内のテキストボックスに入力

  • 「ストップ」ボタンでカウントダウンを一時停止できる

  • タイムアップでメッセージが表示される


普段タイマーを隠していて、いざというときすぐにタイマーを設定したい!

という方におすすめです。


乗車状況確認VBAに導入されたカウントダウンタイマーVBA

幼稚園送迎バスの乗車状況を2重チェックするために開発したVBAで、

ある条件を検知後、設定時間が経過すると警告音を鳴動させる

という内容です。


乗車状況確認VBAの概要がこちら

  • バーコードリーダーの読み取るVBA

  • 「降車済み」検知後、5分後に警告音を鳴動させる

  • 全員が「降車済み」となった場合、カウントダウンタイマーをストップ

  • カウントダウン中に再度「降車済み」を検知した場合、カウントダウンをリセット


乗車した人全員が降車したのかを「警告音」で確認することができます。


関連記事「カウントダウンタイマーと警告音を鳴らすVBA」では、乗車状況確認VBAが設定されたエクセルファイルをダウンロードしてお使いいただけます。


カウントダウンタイマーに使われているVBA

カウントダウンタイマーには以下の関数を使ったVBAが設定されています。

  • TimeSerial関数

  • DateAdd関数

  • DateDiff関数

  • Format関数

それぞれの関数の使い方や特徴を説明していきます。


TimeSerial関数

TimeSerial関数は、引数で指定した(時 , 分 , 秒 )値を返す関数です。

基本構造
  TimeSerial( 時 , 分 , 秒 ) 

戻り値は日付型(Date)の宣言になります。


DateAdd関数

Dateadd関数は日付を計算するときに使用される関数です。例えば、「今から1時間後の日付をA1セルに表示させる」「今からA1セルに記入された時間を加えた日付を表示させる」という使い方ができます。

基本構造
  Dateadd( 単位 , 数量 , 基準時間 )


DateDiff関数

DateDiff関数は日付を計算するときに使用される関数です。例えば、「今から1時間前の日付をA1セルに表示させる」「今からA1セルに記入された時間を引いた日付を表示させる」という使い方ができます。

基本構造
  DateDiff( 単位 , 数量 , 基準時間 )


Format関数

Format関数は指定した値を指定する書式で表示させる関数です。カウントダウンタイマーVBAでは時間関数を取得した値を「00:00:00:」という表示に変換するためにFoemat関数が利用させています。

基本構造
  Format( 指定した値 , “指定した書式" )


時間や表示の方法に関するVBAは仕事でよく使われるので自由に扱えるようにしておきましょう。


業務内容に合わせたカウントダウンタイマーVBAを導入する方法

業務内容に合わせて「カウントダウンタイマーVBA」を導入するには、

自分でVBAを設定する方法VBA開発依頼をする方法

の2パターンあります。


自分でVBAを設定する

業務内容に合わせたVBAを設定する際、以下の手順で作業を進めることをおすすめします。

  1. どのような処理を実現したいのか具体的なイメージを持つ

  2. VBAを書いてみる

  3. 行き詰ったらネットや参考書で問題点を一つ一つ解決していく


1番目の「具体的なイメージを持つ」ことがとても大切。

曖昧なイメージのまま作業を進めてしまうと、

あれ?何がしたいんだっけ?

という感じで頭の中がぐちゃぐちゃになってしまいます。


記事の最後で、

セルの値から制限時間を設定するカウントダウンタイマーVBA」と「ボタンクリックでタイマーを表示。制限時間をユーザーフォーム内で設定するVBA

の2つが設定されたエクセルファイルをダウンロードすることができます。


VBAが得意!という方は設定されているコードをアレンジして使ってみてください。


VBA開発を依頼する

VBAの開発依頼は

こんな処理をするVBAを設定してほしいー

と伝えるだけで業務内容に合ったVBAをゲットすることができます。

費用は掛かりますが、自分でVBAを設定するよりも簡単に導入できるのでとてもおすすめ


関連記事「マメBlogのVBA開発サービス」では、

カウントダウンタイマーVBAをあなたの業務内容に合わせて改良するVBA開発サービス

を行っています。


このようなエクセル業務をしていて作業効率をアップさせたい!

こんな感じのザックリとした依頼内容でOK。


VBAの設定は可能かどうか、費用はどれくらいなのか、すぐに返信がきます。

お気軽に問い合わせしてみてください。


>>> マメBlogのVBA開発依頼はこちら


カウントダウンタイマーが設定されたエクセルファイルのダウンロード

上記で紹介しているカウントダウンタイマーが設定されたエクセルファイルをダウンロードすることができます。


VBA学習用!コードのサンプリング用!

いろんな利用法がありますので、有効にお使いください。


ここから先は

93字 / 2ファイル

この記事が気に入ったらサポートをしてみませんか?