Excelで「作業時間を自動で測りたい」「1秒単位で経過時間を表示したい」と思ったことはありませんか?
仕事中、時間を測定して作業者にフィードバックするシステムが作りたいな、と思ったのでchatgptに聞いてみた。今回は、Excelファイルを開いた瞬間からリアルタイムに秒数をカウントしてシート上に表示する方法を画像付きで解説します!
🧩 完成イメージ

💡 A1セルに「経過時間: 9 秒」などとリアルタイムに表示されます。
🛠️ Step 1:VBAでタイマー用のコードを記述しよう
🔧 まずは標準モジュールにコードを追加します。
📌 操作手順:
- Excelで
Alt + F11
を押してVBAエディターを起動 - メニューで「挿入」→「標準モジュール」を選択
- 以下のコードをコピペ
Public startTime As Date
Public nextUpdateTime As Date
Public timerRunning As Boolean
Sub StartTimer()
startTime = Now
timerRunning = True
Call UpdateTimer
End Sub
Sub UpdateTimer()
If Not timerRunning Then Exit Sub
Dim elapsed As Double
elapsed = (Now - startTime) * 86400 ' 秒に換算
Sheet1.Range("A1").Value = "経過時間: " & Format(elapsed, "0") & " 秒"
nextUpdateTime = Now + TimeSerial(0, 0, 1)
Application.OnTime nextUpdateTime, "UpdateTimer"
End Sub
Sub StopTimer()
On Error Resume Next
timerRunning = False
Application.OnTime nextUpdateTime, "UpdateTimer", , False
End Sub
🧠 Point:Sheet1.Range("A1")の意味
ここでの「Sheet1」は、シートのコードネームです。
表示名ではなく、VBEでシートを選択したときの (Sheet1)
という名前を指しています。
vbaコピーする編集するSheet1.Range("A1")
👇表示先を別シートにしたい場合は、次のように名前で指定できます:
vbaコピーする編集するWorksheets("時間表示").Range("A1")
🛠️ Step 2:Excelブックを開いたときにタイマーを自動で開始
📌 操作手順:
- VBAエディタ左側の「ThisWorkbook」をダブルクリック
- 次のコードを貼り付けます
Private Sub Workbook_Open()
StartTimer
End Sub
▶️ Step 3:ブックを開いてタイマーが動くか確認!
Excelファイルを一度閉じてから再度開いてみましょう。
✅ A1セルに 経過時間: ○○ 秒
のように、秒数が増えていくのが確認できれば成功!
🛑 測定を止めたいときは?
手動でタイマーを停止したい場合は、以下のマクロを実行します。
📌 操作手順:
Alt + F8
を押して「マクロの一覧」を開くStopTimer
を選択 → 実行
または、自分でスイッチを実装し、ボタンを押して終わらせるのもありです。

🎯 応用アイデア
このリアルタイムタイマー機能は、さまざまな用途に応用可能です:
- 作業ログの自動記録
- 作業時間の可視化ツール
- 時間制限付きの入力チェックツール
✅ まとめ
機能 | 内容 |
---|---|
自動開始 | ブック起動時に計測スタート |
リアルタイム表示 | 1秒ごとに経過時間をシートに表示 |
停止可能 | StopTimerマクロで終了できる |
Excelの機能にVBAをプラスすることで、ちょっとしたタイマーアプリのような便利機能が簡単に実装できます!
コメント