
【業務効率化VBA】設定時間後にアラームを鳴らす乗車状況確認マクロ
こんな要望に応えるVBAを開発しました。
このVBAを使えば以下の問題を解決することができます。
人員不足で送迎業務への増員ができない
チェック作業に費用をかけられない
手間をかけずにチェックできるシステムがほしい
乗車状況確認マクロはあくまで補助的なプログラム。
ちゃんと動作はするものの車内に残っている人がいないかどうかちゃんと目で確認することをおすすめします。
記事の後半では乗車状況確認マクロに使われているVBAを紹介しています。
今やってる作業に使えそうなVBAがあれば是非参考にしてみてください。
乗車状況確認マクロの概要
乗車状況確認マクロの概要はこちら


あらかじめ乗車する人にバーコード付き名札を配布しておき、
バーコードリーダーで読み取りで3行目の「スキャンコード」「氏名」「乗車状況」と「C列の表示」が自動編集、「降車済」を検知してから一定時間操作がなかった場合警告音を鳴らす
という内容です。
乗車のタイミングはそれぞればらばらだけど、降車はまとまって行う
という条件で使えます。
使い方
乗車状況確認マクロに使い方はめちゃくちゃ簡単です
乗車名簿リストを作成(1度設定すれば次回から編集不要)
バーコードリーダーで読み取り
以上。
「乗車中」「降車済」の表示!カウントダウンタイマーのスタート!などは全て自動処理されます。
乗車状況確認マクロに導入されているVBA

乗車状況確認マクロは、
「警告音を鳴らすVBA」「カウントダウンタイマーVBA」「条件によって表示を変えるVBA」
で構成されています。
これらのVBAは単体でもいろんなエクセル作業に応用することができるので、是非作り方をマスターしてみてください。
警告音を鳴らすVBA
Sub 音1()
Dim file As String
file = "C:\Windows\Media\tada.wav" '再生する音楽ファイルのフルパス
Call PlayMusic(file) '再生
End Sub
Function PlayMusic(ByRef file As String)
Call mciSendString("play " & file, "", 0, 0)
End Function
WindowsのPC内に保存されているサウンドデータを再生することができます。
「file = "C:\Windows\Media\tada.wav"」を編集すれば音を自由に変更することができます。
関連記事では「基準値を超えたら警告音を鳴らすマクロ」の作り方が紹介されています。
併せてチェックしてみてください。
カウントダウンタイマーVBA
Sub カウントダウンタイマー()
Dim L As Date, cnt As Double
Dim rng1 As Long
L = DateAdd("h", 0, Time)
L = DateAdd("n", 5, L)
L = DateAdd("s", 20, L)
rng1 = 0
Do
cnt = DateDiff("s", Time, L) + rng1
Ash.Cells(2, 10) = cnt
If cnt = 0 Then Exit Do
DoEvents
Loop
End Sub
上記コードは、
J2セルに制限時間320秒カウントダウンタイマーを表示する
です。
4行目から6行目の数値を変えることで制限時間を変更することとができます。
なぜ「Dateadd」や「DateDiff」が使われているの?
と疑問に感じる方は関連記事「エクセルにタイマーを設定する方法」を参考にしてみてください。
作り方が詳しく解説されています。
「乗車中」「降車済」を検知するVBA
Sub BC_input()
Dim Ash As Worksheet
Set Ash = ThisWorkbook.Worksheets("BC_SCAN")
gyoa = Ash.Cells(Rows.Count, 1).End(xlUp).ROW
For i = 6 To gyoa
code2 = Ash.Cells(i, 2)
If code1 = code2 And Ash.Cells(i, 3) = "乗車中" Then
Ash.Cells(3, 5) = Ash.Cells(i, 1)
Ash.Cells(3, 6) = "降車済"
Ash.Cells(3, 6).Interior.Color = RGB(159, 255, 202)
Ash.Cells(3, 7) = Ash.Cells(i, 4)
Ash.Cells(i, 3) = "降車済"
Ash.Cells(i, 3).Interior.Color = RGB(159, 255, 202)
GoTo L2
Else
End If
Next
上記コードは乗車状況確認マクロで、
「乗車中」「降車済」を検知するVBAの抜粋
です。
For~Nextと関数IFで6行目から最終行までの情報を読み取ることで、
「乗車中」「降車済」の検知を実現しています。
For~Nextと関数IFの使い方については関連記事「Forと関数IFを組み合わせる方法」を参考にしてください。
業務内に合ったVBAを導入する方法

業務内容に合わせて「乗車状況確認マクロ」を導入するには、
自分でVBAを設定する方法とVBA開発依頼をする方法
の2パターンあります。
自分でVBAを設定する
業務内容に合わせたVBAを設定する際、以下の手順で作業を進めることをおすすめします。
どのような処理を実現したいのか具体的なイメージを持つ
VBAを書いてみる
行き詰ったらネットや参考書で問題点を一つ一つ解決していく
1番目の「具体的なイメージを持つ」ことがとても大切。
曖昧なイメージのまま作業を進めてしまうと、
あれ?何がしたいんだっけ?
という感じで頭の中がぐちゃぐちゃになってしまいます。
「降車」を検知してからどれくらいの時間経過で警告音をならすのか!
バーコードリーダーを使わないで乗車状況を入力する方法はないのか!
「欠席」の場合、どのような処理をするのか!
VBAを作り始める前に完成系のイメージを固めておきましょう。
記事の最後では乗車状況確認マクロが設定されたエクセルファイルをダウンロードすることができます。
VBAが得意!という方は設定されているコードをアレンジして使ってみてください。
VBA開発を依頼する
VBAの開発依頼は
こんな処理をするVBAを設定してほしいー
と伝えるだけで業務内容に合ったVBAをゲットすることができます。
費用は掛かりますが、自分でVBAを設定するよりも簡単に導入できるのでとてもおすすめ
関連記事「マメBlogのVBA開発サービス」では、
乗車状況確認マクロをあなたの業務内容に合わせて改良するVBA開発サービス
を行っています。
このようなマクロを導入して作業効率をアップさせたい!
こんな感じのザックリとした依頼内容でOK。
VBAの設定は可能かどうか、費用はどれくらいなのか、すぐに返信がきます。
お気軽に問い合わせしてみてください。
>>> マメBlogのVBA開発依頼はこちら
乗車状況確認マクロのダウンロード

上記で紹介している「乗車状況確認マクロ」が設定されたエクセルファイルをダウンロードすることができます。
氏名、スキャンコード情報を変更するだけですぐお使い頂けます。
この記事が気に入ったらチップで応援してみませんか?