エクセルで現在時刻を自動更新したいけれど、関数を使ってもうまく反映されないと悩んでいたり、時間を固定するためのショートカットキーを知りたかったりしませんか。また、マクロなしでリアルタイムに動く時計を作ろうとして循環参照のエラーが出てしまったり、ファイルが重いと感じて困っている方もいるかもしれませんね。この記事では、そんな疑問について、私の普段のデータ管理の経験も交えながら、基本からわかりやすくお伝えしていきます。

- NOW関数やTODAY関数を用いた基本的な時間表示の設定
- ショートカットキーを使って時刻を値として固定する手順
- 揮発性関数による動作遅延を防ぐファイル軽量化のコツ
- VBAを活用して安全なリアルタイムデジタル時計を構築する手法
エクセルで現在時刻を自動更新する基本手法
ここでは、エクセルを使って現在時刻を自動的に更新させるための基本的なアプローチについてお話ししますね。関数を利用してファイルを開いたときの時間をパッと表示させたり、ショートカットを使って時間をサクッと入力したりする、普段の作業ですぐに役立つ内容をまとめてみました。
NOW関数とTODAY関数の使い分け
エクセルで時間や日付を扱うとき、一番の基本となるのがNOW関数とTODAY関数ですね。どちらも現在のシステム時間を自動で取得してくれる便利な関数ですが、用途によってしっかり使い分けるのがポイントかなと思います。
TODAY関数は、現在の「日付」だけを取得したいときに使います。書類の発行日やタスクの期限を計算したいときなどによく使われますね。一方、NOW関数は日付に加えて現在の「時刻」まで細かく取得してくれます。ダッシュボードの最終更新時間など、よりリアルタイムな状況を把握したい場合にはNOW関数がぴったりです。
エクセルは内部的に時間を「シリアル値」という数字で管理しています。1日を「1」として計算し、時間はその小数部分として扱われる仕組みになっていますよ。
更新されるタイミングと再計算の条件
関数を入力したのに「時間が進まないな」と疑問に思ったことはありませんか。実は、NOW関数やTODAY関数は、常に時計のように1秒単位で動き続けているわけではないんです。
値が新しい時刻に更新されるには、エクセルの中で再計算という処理が行われる必要があります。具体的には、ファイルを開き直したときや、シートのどこかに新しく文字を入力したとき、あるいは手動で再計算のボタン(F9キーなど)を押したタイミングですね。
ファイルを開いた瞬間のタイムスタンプを自動で生成したい場合は、この自動更新の仕組みがとても役に立ちますよ。
表示形式を変更して秒単位まで出す方法
NOW関数を入力すると、最初は「年月日時分」までしか表示されないことが多いですよね。でも、業務によっては「秒単位までしっかり表示させたい」という場面もあるかもしれません。
そんな時は、関数の仕組みを変えるのではなく、セルの見た目だけを調整すればOKです。設定を変更したいセルを選んで「セルの書式設定」を開き、「表示形式」のタブから時刻を選んでみてください。
| 目的 | 表示形式の設定例 |
|---|---|
| 時間と分だけ表示 | h:mm |
| 秒単位まで表示 | h:mm:ss |
ここから好みのフォーマットを選ぶだけで、内部のシリアル値はそのままに、見た目だけを柔軟に変えることができます。
関数を値に固定して自動更新を止める技
関数の自動更新は便利ですが、ちょっと困ったデメリットもあります。それは、明日ファイルを開き直すと、昨日記録したはずの時間が「今日の時間」に書き換わってしまうという点です。
過去の記録として時間を残しておきたい場合は、自動更新を止める必要があります。一番確実なのは、関数で表示された時間をコピーして、同じ場所に値の貼り付けをする方法ですね。これで数式バーから関数が消えて数字だけが残るので、時間が勝手に変わるのを防ぐことができます。
ショートカットキーで日時を一瞬で入力
もし、「毎回コピーして値として貼り付けるのが面倒だな」と感じるなら、ショートカットキーを使うのが圧倒的におすすめです。私自身、作業の記録を残すときにはこの方法を一番よく使っています。
現在の時刻を入力したいときは、キーボードのCtrlと:(コロン)を一緒に押すだけで一瞬で入力できます。日付の場合はCtrlと;(セミコロン)ですね。
このショートカットで入力した時間は、最初から値として固定されているので、あとから勝手に更新される心配がありません。確実なログを残す用途なら、関数よりもこちらの方が安全かなと思います。
エクセルの現在時刻を自動更新する応用と注意

基本的な使い方がわかったところで、次は少し応用編に入ります。ファイルが重くなってしまう原因や、マクロを使わずにリアルタイムの時計を作れるのかといった疑問、さらにはシステムへの負荷を考慮した安全な時計の作り方まで、詳しく解説していきますね。
重いファイルの原因となる揮発性関数の罠
エクセルを使っていて、文字を一つ打つたびに画面が固まったり、「動作が重い」と感じたりすることはありませんか。実は、NOW関数やTODAY関数をたくさん使いすぎると、それが原因になってしまうことがあるんです。
これらの関数は揮発性関数と呼ばれていて、シートのどこかで少しでも変更があると、自分自身を必ず再計算しようとする性質を持っています。何千行もあるデータすべてにNOW関数を入れていると、たった一文字入力しただけで何千回も計算が走ってしまい、結果的にエクセルがパンクしてしまうんですね。
動作を軽く保つためには、NOW関数はシートの上のほうに一つだけ置いておき、他のセルはそこを参照するような作りにするのがおすすめですよ。不要な行列を削除したり、バイナリ形式で保存し直したりするのも効果的です。
マクロなしでリアルタイム時計は作れるか
「エクセルのシート上に、常に秒針が動くようなリアルタイム時計を表示したい」と考える方もいらっしゃるかもしれませんね。マクロを使わずに、標準の機能だけでこれができないかと試行錯誤されるケースをよく見かけます。
しかし結論から言うと、マクロなしで常に動き続ける時計を安全に作ることはできません。先ほどお話ししたように、関数の時間は「何かの操作」がないと再計算されないため、放置しているだけで勝手に時間が進む仕組みは標準機能には用意されていないんです。
循環参照を利用した時計作成の危険性
ネット上の情報などでは、「反復計算」の設定をオンにして循環参照(数式が自分自身を参照してループすること)をわざと起こし、無理やり時計のように動かす裏技が紹介されていることがあります。
ただ、この方法は絶対におすすめしません。エクセルの計算エンジンに異常な負荷をかけ続けることになり、他の作業が一切できなくなったり、最悪の場合はファイルが壊れてクラッシュしてしまったりする危険性が高いからです。
VBAを用いた低負荷なデジタル時計の実装
どうしてもリアルタイムで動く時計が必要な場合は、VBA(マクロ)を使ってプログラムを書くのが一番現実的で安全なアプローチになります。
ただし、単純に「時間を更新し続けるループ処理」を作るとパソコン全体が重くなってしまいます。そこで活躍するのが、Application.OnTimeというメソッドです。これは「指定した時間に一回だけ処理を実行してね」という予約システムのようなもので、待機している間はパソコンの力を使わないので、とても軽い動作で時計を実現できるんです。
本記事で紹介している数値データやVBAのシステム負荷に関する記述は、あくまで一般的な目安となります。正確な情報はマイクロソフトの公式サイトをご確認ください。また、実際の社内業務システム等への導入にあたっては、最終的な判断は専門家にご相談されることを強く推奨します。
エクセルで現在時刻を自動更新するコツまとめ
いかがだったでしょうか。エクセルで現在時刻を自動更新する機能はとても便利ですが、仕組みを理解しないまま使うと、動作が遅くなったり過去の記録が消えてしまったりと思わぬ落とし穴にはまることもあります。
常に最新の時間を表示させたいダッシュボードならNOW関数を使い、作業の証跡として時間を固定したいならショートカットキーを使うなど、目的に合わせて機能を使い分けるのが上手な運用のコツですね。もし動作が重いと感じたら、関数を使いすぎていないかチェックしてみてください。この記事が、皆さんの日々のデータ管理を少しでも快適にするヒントになれば嬉しいです!
