【Excel】入力規則で今日以降の日付に制限する方法|貼り付けと既存データの注意

【Excel】入力規則で今日以降の日付に制限する方法|貼り付けと既存データの注意
🛡️ 超解決

予約希望日やこれから着手する予定日に過去の日付を入れさせたくない場合は、「データの入力規則」で日付の下限をTODAY関数にします。直接入力した誤りにはその場で気付けますが、貼り付けや既存データまで完全に防ぐ機能ではありません。設定後の試し入力と、取り込み後の確認を組み合わせて使います。

ADVERTISEMENT

「今日以降」を使う列と、過去の日付を残す列を分ける

今後の予約希望日なら今日以降に限定する意味があります。一方、実績の完了日や過去の受付日を記録する欄へ同じ制限をかけると、正しい記録まで入力できなくなります。設定の前に、その列が予定用なのか実績用なのかを確認してください。

ここではWindowsのデスクトップ版Excelで、B2:B100を新規の予約希望日欄として使う例を説明します。すでに日付が入っているなら、入力済みの内容は保存し、空いている数行で試してから全体へ適用します。列全体ではなく、必要な入力欄を選ぶと見出しや集計欄へ影響しません。

TODAY関数はその日の日付を返します。固定の日付を下限にすると基準日は動きませんが、TODAYを使うと再計算に応じて基準が更新されます。深夜をまたいでも毎秒自動で入力済みデータを監視し続ける機能、という意味ではありません。

昨日予約した「昨日の日付」が今日には過去になるのは自然なことです。日が進んだだけの正常な履歴を誤入力と混同しないよう、新規受付の欄と確定した記録の扱いを決めておきます。

※ お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

日付の下限へTODAYを設定する

入力欄を日付形式に整えたうえで、入力規則を設定します。日付の表示形式だけでは、過去の日付を禁止できません。表示形式は見え方、入力規則は受け付ける条件を設定するものです。

  1. B2:B100を選び、「データ」→「データの入力規則」を開きます。
  2. 「設定」で「入力値の種類」を「日付」にします。
  3. 「データ」を「次の値以上」にします。
  4. 開始日、または下限の日付を指定する欄へ=TODAY()と入力します。
  5. 続けて「エラーメッセージ」の設定を確認します。

「次の値より大きい」を選ぶと今日が含まれなくなるので、「以上」を選んでください。条件が違えば入力欄の名称も変わります。開始日と終了日の2欄が出るなら、「次の値の間」になっていないかを見ます。

下限だけの設定では、遠い将来の日付も許可されます。受付可能な期間が決まっている場合は、実際の業務ルールに合わせて上限も設定します。たとえば30日先まで受けるなら「次の値の間」でTODAY()とTODAY()+30を使う方法がありますが、今回の「今日以降」とは条件が増えます。

拒否したい場合はエラーのスタイルを「停止」にする

条件を設定しただけで終わらず、「エラーメッセージ」タブで、無効なデータが入力されたときにエラーメッセージを表示する設定をオンにします。スタイルは「停止」を選びます。「注意」や「情報」は、メッセージが出ても利用者がその値を受け入れて進めるため、直接入力を拒否したい用途には合いません。

タイトルは「予約日の確認」、本文は「今日以降の日付を年月日で入力してください。」など、直す内容がわかる文にします。単に「入力エラー」と表示するより、利用者が次に取る操作を判断しやすくなります。

「入力時メッセージ」には「例:2026/09/20。予約希望日を入力」といった案内を入れられます。ただし固定の例示日付が後で過去になる点には注意し、「今日以降・年月日形式」のような案内を主にします。例を実際の下限と誤解させないことが大切です。

「空白を無視する」の設定も確認します。空欄を許すかどうかは業務で決めますが、必須入力を確実に完了させる仕組みとは別です。未入力行を残したまま提出できる運用なら、提出前に空欄をチェックする手順も必要です。

昨日・今日・明日を直接入力して確かめる

保存する前に、試験用の空いているセルへ実際の日付を直接入力します。今日を2026/09/20とした例なら、2026/09/19は停止され、2026/09/20と2026/09/21は受け付けられるのが期待する結果です。試験が終わったら、不要な入力値を消します。

入力する内容 期待する結果
昨日の日付 エラーが出て直接入力を確定できない
今日の日付 受け付けられる
明日の日付 受け付けられる
日付ではない文字 停止の設定で拒否されることを確認

境界がずれているときは、別のセルに=TODAY()を入れて、Excelが使う日付を見ます。PCの日時と「数式」→「計算方法の設定」も確認し、手動計算のままになっている場合は影響を把握したうえで自動へ戻します。

日付には年も入力してください。月日だけで入力すると、意図した年と違う日付になることがあります。また、日付形式で表示された数値を扱うため、見た目が日付というだけで、入力者の意図まで判断できるわけではありません。

値貼り付けでも入力規則を通り抜けることがある

入力規則のエラー表示は、セルへ直接入力するときの確認を中心とした機能です。コピーやフィルで入れた値には、同じエラーメッセージが出ないことがあります。これは通常の貼り付けで規則そのものを上書きする問題とは別です。

「値として貼り付け」を使えば、貼り付け先の入力規則を残す助けになります。ただし、それだけで貼り付けた日付が条件を満たすとは限りません。「規則が残っている」ことと「値が有効である」ことを別々に確認してください。

大量の日付を取り込む場合は、いったん確認用の列へ貼り付け、日付の型・最小日・空欄などを確認してから採用します。本番の予約欄へ直接貼り付けたあと、エラーが出なかったことをもって全件正しいと判断しないようにします。

シートを保護しても、入力可能にしたセルの値がすべて正しくなるわけではありません。入力規則を安全性の保証として扱わず、取り込みと提出の時点でも確認します。外部システムが最終的に受け付ける業務なら、そちら側の検証条件も必要です。

既存データを調べ、期限の経過と誤入力を区別する

入力済みのセルへ新しく規則を付けても、過去の日付が自動で削除されることはありません。Windows版では「データの入力規則」のメニューから「無効なデータのマーク」を使い、現在の条件に合わないセルを囲んで確認できます。表示した円を消す操作は、値や規則の削除とは別です。

今日以降の規則では、昨日まで有効だった日付も翌日には基準から外れます。そのセルを見つけても、昨日の予約という正しい履歴なら今日の日付へ書き換えないでください。日付の修正が必要なのか、確定済みとして管理対象を分けるべきなのかを判断します。

受付時点を基準に判定したい場合は、現在の日付ではなく、その行の受付日を固定して参照する設計が候補になります。日々変わるTODAYを使う条件と、受付日に対する前後関係を使う条件では、確認する意味が違います。

新しい行を追加した場合は、その行にも同じ規則が入っているかを確認します。昨日・今日の試し入力を1セルで行い、書式だけがコピーされて入力規則が抜けていないことを確かめてください。

設定を変更・解除するときの戻し方

条件を変更する場合は対象範囲を選び、入力規則のダイアログを開いて下限やエラースタイルを変更します。似た規則が混在している表では、対象範囲を確認してから適用します。「同じ入力規則が設定されたすべてのセルに変更を適用する」項目は、影響するセルがわかる場合だけ使用します。

制限が不要になった場合は、入力規則の「設定」で「すべてクリア」を選んでOKを押します。これは入力規則ダイアログ内の操作です。「ホーム」にあるセル内容の「すべてクリア」と取り違えないでください。規則を解除しても、入力済みの日付は残ります。

規則を誤って消した直後なら元に戻し、閉じたあとなら保存したコピーの設定を参照して作り直します。保護により変更できない帳票は作成者へ相談します。最終確認では、直接入力の拒否、貼り付け後の点検、過去の正しい記録を維持する運用の3点を確認してください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。
この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】