Excel TODAY関数の今日日付を固定にする方法を知りたいときはないでしょうか。
けど、そんな中で悩むことは、
・日報や記録に「入力した日の日付」をそのまま残したい
・数式のままだと、あとから書き換わらない日付にできない
ですよね。
今回はそんなお悩みを解決する
についてまとめます!
完成イメージ
TODAY関数はとても便利ですが、ファイルを開いたり再計算したりするたびに「今日の日付」へ自動で更新されるという特徴があります。
そのため、日報のように「その日に書いた日付」を記録として残したい場面では、数式のままだと都合が悪いことがあります。
今回は
・TODAY関数で入れた今日の日付を「値」にして、開き直しても変わらないようにする方法
をゴールにします。
固定する方法を3つ(値の貼り付け/Ctrl+;/VBA)ご紹介するので、場面に合わせて選べるようになります。
なお、TODAY関数とNOW関数の違いや、うまくいかないときの対処法(トラブルシュート)もあわせてご紹介します。
早速実装して試してみましょう!

上の画像が完成形です。日付の列が「数式」ではなく「値」になっているので、ファイルを開き直しても日付が変わりません。
もくじ
STEP1. サンプルの日報を用意する
まずは日付を入れたい日報の表を用意します。
今回は日報のサンプルを作りました。
A列が日付、B列が内容、C列が担当です。
日付の列(A列)は空のままにしておきます。
この空っぽの日付列に、今日の日付を入れていきましょう。

下の表をコピーして、Excelのシートに貼り付けるとそのまま試せます。
| 日付 | 内容 | 担当 |
|---|---|---|
| 2026/10/4(日) | 営業報告書の作成 | 佐藤 |
| 2026/10/4(日) | 顧客訪問(A社) | 鈴木 |
| 2026/10/4(日) | 見積書の提出 | 高橋 |
| 2026/10/4(日) | 社内ミーティング | 田中 |
| 2026/10/4(日) | 請求書の処理 | 伊藤 |
| 2026/10/4(日) | 在庫チェック | 渡辺 |
| 2026/10/4(日) | 問い合わせ対応 | 山本 |
| 2026/10/4(日) | 日報の提出 | 佐藤 |
※ 数式で求める列は空にしています。すでに値が入っている列はそのまま残して試せます。
STEP2. TODAY関数で今日の日付を入れる
日付を入れたい先頭の A2セル を選びます。
=TODAY() と入力してEnterを押します。
TODAY関数は引数なしで、そのときの今日の日付を返す関数です。
Enterを押した瞬間の日付が表示されます。
実際の入力画面がこちらです。

STEP3. フィルハンドルで下までコピーする
A2セルを選び、右下の小さな四角(フィルハンドル)をA9セルまでドラッグします。
A2を選んで Ctrl+C → A3:A9を選択 → Ctrl+V でもかまいません。
日付の列すべてに今日の日付が入りました。
ただし、この時点ではすべて数式のままです。

STEP4. 数式のままでは日付が更新されてしまう
TODAY関数は、ブックを開いたときや再計算されたときに日付を取得し直します。
そのため、今日書いた日報を保存し、翌日に開くと昨日の日付が今日の日付に書き換わってしまいます。
これでは「いつ書いた日報か」が残りません。
そこで、日付を数式ではなく「値」に変換して固定します。
TODAY関数の日付を残したいときは、数式を「値」に変換します。
値にしてしまえば、ブックを開き直しても日付は変わりません。
変換のしかたは 値の貼り付け/Ctrl+;/VBA の3つを覚えておけば十分です。
STEP5. 【固定法①】値の貼り付けで固定する
いちばん確実なのが、コピーしたものを値として貼り付け直す方法です。
手順は次のとおりです。
1. 日付の範囲 A2:A9 を選択します。
2. Ctrl+C でコピーします。
3. そのまま右クリックし、「形式を選択して貼り付け」を選びます。
4. 一覧から 「値」 を選んでOKを押します。
これで、数式が計算結果の「値」に置き換わりました。
開き直しても日付は変わらなくなります。

値になったかどうかを確認する
値に変換できたかは、セルを選んで数式バーを見るとすぐに分かります。
数式バーに =TODAY() ではなく 2026/10/4 のような日付が表示されていれば、値になっています。
逆に数式のままだと、数式バーには =TODAY() と表示されます。
迷ったら、この数式バーで確認するのがおすすめです。

STEP6. 【固定法②】Ctrl+; で直接入力する
数式を使わず、はじめから値を入れたいときはショートカットが便利です。
日付を入れたいセルを選び、Ctrl+;(コントロールキーとセミコロン)を押します。
すると、その場で今日の日付が値として入力されます。
A2で押してから、同じようにA9まで入力すれば完了です。
数式ではないので、ファイルを開き直しても日付は変わりません。
キー1つで完結するのでカンタンですね。

STEP7. 【固定法③】VBAで日付を値として一括入力する
件数が多いときや、毎回同じ作業をするときはVBAがおすすめです。
Alt+F11でVBAエディターを開き、標準モジュールに次のコードを貼り付けます。
Sub SetTodayValue()
Dim r As Long
For r = 2 To 9
Cells(r, 1).Value = Date
Next r
Range("A2:A9").NumberFormat = "yyyy/m/d(aaa)"
End Sub
実行すると、A2セルからA9セルまで今日の日付が一括で値として入ります。
ポイントは Cells(r, 1).Value = Date の部分です。
Dateは今日の日付を返しますが、数式ではなく値としてセルに入るため、あとで変わりません。
セルに数式を入れたいときは Formula、値を入れたいときは Value を使い分けます。
記録として残したい日付は Value、常に今日を表示したいときは Formula と覚えておきましょう。

日付の入れ方の比較
それぞれの方法の特徴を表にまとめました。
「数式」か「値」かで、開き直したときの動きが変わります。
| 方法 | 数式/値 | 開き直すと | 向いている場面 |
|---|---|---|---|
| =TODAY() | 数式 | 今日の日付に更新される | 常に今日の日付を表示したいとき |
| =NOW() | 数式 | 今日の日時に更新される | 時刻も一緒に表示したいとき |
| 値の貼り付け | 値 | 変わらない | 数式で入れた日付を固定したいとき |
| Ctrl+; | 値 | 変わらない | 入力した日をそのまま残したいとき |
| VBA(Value = Date) | 値 | 変わらない | 件数が多く、まとめて入れたいとき |
うまくいかないときの対処法(トラブルシュート)
実際に試すと、思ったようにいかないこともあるかもしれません。
よくあるつまずきと対処法をまとめました。
| 症状 | 原因 | 対処 |
|---|---|---|
| 日付が「43928」のような数字になる | 表示形式が「標準」になっている | セルの表示形式を yyyy/m/d にする |
| 値の貼り付けで書式まで崩れた | 「値」だけを貼り付けたため | 書式を残したいときは「値と数値の書式」を選ぶ |
| 貼り付けたのに日付が変わる | 数式が残ったままになっている | セルを選び、数式バーが =TODAY() なら値を貼り直す |
| Ctrl+; が効かない | 日本語入力がオンになっている/別のキーを押している | 半角英数に切り替えてから Ctrl+; を押す |
| VBAで実行時にエラーになる | マクロ有効ブック以外で保存している | .xlsm(マクロ有効ブック)で保存する |
関数の説明
今回登場する関数の概要です。
どちらも「今日」を扱う関数なので、違いを押さえておきましょう。
TODAY関数(トゥデイ)
| 書式 | =TODAY() |
|---|---|
| できること | そのときの今日の日付を返す。 |
| 戻り値 | 今日の日付(値として変換すると固定できる) |
| こんなときに | 印刷日や入力日を、開いた時点の日付で自動表示したいとき。 |
| 注意 | 引数はなし。ブックを開くたびに更新されるため、記録として残したい日付には向きません。 |
=TODAY()
NOW関数(ナウ)
| 書式 | =NOW() |
|---|---|
| できること | そのときの今日の日付と時刻を返す。 |
| 戻り値 | 今日の日付と時刻(値として変換すると固定できる) |
| こんなときに | 作成日時に「日付+時刻」をまとめて表示したいとき。 |
| 注意 | TODAY関数と同じく開くたびに更新されます。固定するには値の貼り付けが必要です。 |
=NOW()
完成
日付の列が「値」になり、開き直しても日付が変わらない状態になりました。
思ったとおりに動きましたか?
数式のままか値かは、セルを選んで数式バーを見ればすぐに確認できます。
「記録として残す日付は値にする」と覚えておくと迷いません。

さいごに
いかがでしょうか。
今回は、
についてまとめました。
まずは今回のサンプル表で、ぜひ一度試してみてください。
数式で入れた日付は「値の貼り付け」、はじめから値で入れたいときは「Ctrl+;」、まとめて入れたいときは「VBA」と使い分けてみてくださいね。
また、他にも便利なExcelの時短テクニックがありますので、よろしければご参照頂ければと思います。
ぜひ試してみてください。














コメントを残す