皆さん、こんにちは。VBA講師の田中です。
普段の業務で「あと何分で会議が始まるか」「この定型処理にどれくらい時間がかかっているか」を意識したことはありますか?今回は、Excelの画面上に常駐させ、作業の集中力を高めるための「簡易デジタル時計」の作り方を解説します。
なぜExcelに時計が必要なのか?
実務において、集中力は最大の資産です。しかし、デュアルモニターで作業していると、画面の端にある小さなWindowsの時計を見落としがちです。Excelのセルに大きく現在時刻を表示させれば、視線を動かさずに時間を把握でき、作業のペース配分が劇的に改善されます。
実装のステップ
まずはVBAの標準モジュールを挿入し、以下のコードを記述してください。
【コードの記述】
Public Sub StartClock()
Range(“A1”).Value = Format(Now, “hh:mm:ss”)
Application.OnTime Now + TimeValue(“00:00:01”), “StartClock”
End Sub
Public Sub StopClock()
On Error Resume Next
Application.OnTime Now + TimeValue(“00:00:01”), “StartClock”, , False
End Sub
このコードの肝は、Application.OnTimeメソッドです。これは「指定した時間に特定のプロシージャを実行する」という機能で、自分自身を1秒後に呼び出し続けることで、時計として機能させています。
実務現場での「ひと工夫」
ただ時刻を出すだけでは面白くありません。現場のプロとして、さらに活用するためのテクニックを2つ伝授します。
1. 条件付き書式で「アラート」を出す
A1セルに「17:00:00」を過ぎたら背景を赤くするように条件付き書式を設定してみてください。定時退社を意識する強力な視覚的トリガーになります。
2. 処理時間の計測に応用する
上記のコードを少し改造し、マクロの開始時に開始時刻を記録、終了時に終了時刻との差分を表示するようにすれば、誰でも簡単に「処理のボトルネック」を可視化できます。「このレポート作成に毎回10分かかっている」という事実が数字で分かれば、業務改善の提案もしやすくなるはずです。
注意点:VBA時計の限界
最後に一つだけ。この時計はあくまで「目安」です。重い処理を実行している最中は、VBAの更新が止まることがあります。また、Excelを閉じるときに必ずStopClockを実行しないと、ファイルが勝手に開き続けるというトラブルになりかねません。
必ず「ThisWorkbook」モジュールの「Workbook_BeforeClose」イベントに、StopClockを呼び出す処理を組み込んでおいてください。
たかが時計、されど時計。こうしたちょっとした工夫が、あなたのPC作業を「なんとなく」から「コントロールされた」ものに変えてくれます。ぜひ、明日からの業務に取り入れてみてください。
