Excelで日付を入力するとき、毎回キーボードで年月日を打ち込む作業は意外に時間がかかります。
入力形式の揺れや、存在しない日付の入力、月をまたぐ予定表での転記ミスも起こりやすいポイントです。
そこで役立つのが、入力規則を使ったプルダウンや、VBAで表示するポップアップ形式のカレンダーです。
用途に合う方法を選べば、日付入力を速くしながら、表の品質も整えられます。
手軽に日付候補を選ばせたい場合は入力規則のプルダウン、月間カレンダーから直感的に選びたい場合はVBAのポップアップが向いています。
この記事では、Excelのカレンダーから日付を選択してセルへ入力する方法を、初心者にも分かる順序で解説します。
サンプルは1行目に見出しがある予定管理表を前提にしています。
Excelの日付入力をプルダウンで設定する方法【入力規則の基本】
それではまず、Excel標準機能だけで日付を候補から選べるようにする方法について解説していきます。
| A | B | C |
|---|---|---|
| 1 | 担当者 | 訪問日 |
| 2 | 田中 | 日付を選択 |
日付候補リストの作成
まずは、プルダウンに表示する日付の一覧を空いているシートへ用意します。
たとえば別シートのA1に日付候補という見出しを置き、A2からA32までに1か月分の日付を入力します。
連続した日付を作るなら、A2に開始日を入力し、A3には次の数式を入力します。
=A2+1
この数式は、ひとつ上のセルの日付に1日を加える仕組みです。
Excelでは日付を連番として管理しているため、日付に1を足すだけで翌日を求められます。
A3右下のフィルハンドルを下方向へドラッグすると、必要な日数まで連続日付を作成できます。
表示が数字になった場合は、セルを選択してホームタブの表示形式から日付を指定しましょう。
日付候補の表示は、2026年9月1日や9月1日火曜日など、業務で読みやすい形式に整えると便利です。
【操作のポイント】候補リストには文字列ではなく、Excelが日付として認識する値を入力すると並べ替えや集計にも使いやすくなります。
入力規則によるプルダウン設定
続いて、日付を入力したいセル範囲に入力規則を設定します。
予定表のC2からC100を選択し、データタブにあるデータの入力規則をクリックしてください。
設定タブで入力値の種類をリストに変更します。
元の値には、先ほど作成した日付候補の範囲を指定します。
別シートの範囲をそのまま指定しにくい場合は、候補範囲に日付候補という名前を定義し、元の値へ次のように入力すると安定します。
=日付候補
セル内ドロップダウンのチェックが入っていることを確認して、OKを選択しましょう。
設定後にC2をクリックすると、セルの右側に小さな矢印が現れます。
矢印をクリックし、表示された一覧から日付を選べばセルへ入力されます。
入力規則のリストはマウス操作だけで選べるため、日付の打ち間違いを減らしやすい方法です。

【操作のポイント】入力規則は対象範囲をまとめて選択してから設定すると、行ごとの設定漏れを防げます。
候補が増減する表への対応
日付候補を毎月作り直したくない場合は、開始日と終了日を指定して候補を作る方法が便利です。
たとえばA2に開始日、B2に終了日を入力し、D2から日付リストを展開する構成にできます。
Microsoft 365やExcel 2021以降では、D2に次の数式を入力すると連続日付を自動生成できます。
=SEQUENCE(B2-A2+1,1,A2,1)
SEQUENCE関数の最初の引数は表示する行数です。
B2-A2+1によって、開始日と終了日の両方を含む日数を計算します。
3番目の引数A2は開始値、最後の1は1日ずつ増やす間隔です。
月初日と月末日を変更するだけで候補一覧が更新されるため、月ごとの管理表に適しています。
ただし、入力規則の参照先にスピル範囲を使う場合は、名前の定義を活用すると参照エラーを避けやすくなります。
【操作のポイント】日付候補を別シートへまとめておくと、入力用シートが見やすくなり、誤操作の防止にもつながります。
開始日と終了日を連動させる入力規則【日付範囲の制御】
続いては、開始日と終了日の前後関係を保ちながら日付を入力する設定を確認していきます。
| A | B | C |
|---|---|---|
| 1 | 開始日 | 終了日 |
| 2 | 2026/09/01 | 開始日以降を入力 |
日付形式の統一
日付を選択する仕組みを作る前に、対象セルが日付形式になっているか確認しましょう。
セルに2026/9/1と入力しても、表示形式によっては2026年9月1日や9月1日と表示されます。
表示だけが異なっても内部の値が正しい日付であれば、計算や比較に支障はありません。
一方で、文字列として入力された日付は、日数計算や入力規則で想定どおりに扱えない場合があります。
ホームタブの数値グループから短い日付形式を選ぶか、セルの書式設定でユーザー定義を設定してください。
yyyy/m/d
曜日まで表示したい場合は、次の書式が使えます。
yyyy/m/d(aaa)
表示形式をそろえると、同じ列に入力された日付をひと目で比較しやすくなります。
特に共有ファイルでは、入力者ごとに表記が異なる状態を避けることが重要です。
【操作のポイント】日付の入力前に列全体へ表示形式を設定しておくと、入力後の修正作業を少なくできます。
開始日以降だけを許可する設定
終了日が開始日より前になる入力ミスを防ぐには、データの入力規則で条件を設定します。
C2を選択し、データの入力規則を開いてください。
入力値の種類を日付、データを次の値以上に設定します。
開始日がB2に入力される表では、開始日の欄に次の参照式を入力します。
=$B2
列記号の前にドル記号を付けることで、設定を下の行へコピーしてもB列を参照し続けます。
行番号は固定しないため、C3ではB3、C4ではB4というように同じ行の開始日と比較されます。
相対参照と絶対参照を使い分けることが、複数行へ入力規則を適用する際の基本です。
エラーメッセージタブでは、終了日は開始日以降の日付を選択してくださいという案内を登録できます。
入力者が理由を理解できる文言にしておくと、差し戻しの手間も減るでしょう。

【操作のポイント】開始日セルが空欄のときの扱いも確認し、運用に合わせて入力順序を決めておきましょう。
営業日と休日を意識した日付管理
納期や訪問日など、土日祝日を避ける必要がある表では、営業日を意識した日付管理が必要です。
翌営業日を求める代表的な関数がWORKDAY関数です。
A2に基準日があり、1営業日後の日付を求める場合は次の数式を使います。
=WORKDAY(A2,1)
第1引数は開始日、第2引数は加算する営業日数です。
土曜日と日曜日は自動的に除外されます。
祝日一覧をF2からF20に入力している場合は、第3引数へその範囲を追加します。
=WORKDAY(A2,1,$F$2:$F$20)
プルダウンの候補と関数による日付計算を組み合わせると、予定日と期限の整合性を確認しやすくなります。
休日一覧は毎年更新が必要なので、年が変わるタイミングで見直してください。
【操作のポイント】入力規則だけでは休日を完全に除外しにくいため、重要な期限管理では条件付き書式や関数も併用します。
フォームコントロールを使う日付選択【開発タブの活用】

続いては、シート上に操作部品を置いて日付入力を補助する考え方を確認していきます。
| A | B | C |
|---|---|---|
| 1 | 予約番号 | 予約日 |
| 2 | R001 | 選択セル |
開発タブの表示
ExcelのフォームコントロールやVBAを使う場合は、開発タブを表示しておくと作業が進めやすくなります。
ファイルタブからオプションを開き、リボンのユーザー設定を選択します。
右側の一覧で開発にチェックを入れ、OKをクリックしてください。
リボンに開発タブが追加されます。
開発タブでは、Visual Basic、マクロ、挿入、デザインモードなどの機能を利用できます。
開発タブを表示しただけではマクロが有効になるわけではないため、通常のExcel操作へ影響することはありません。
なお、Excelのバージョンや環境によっては、以前のActiveX形式の日付選択コントロールが利用できない場合があります。
そのため、再現性を重視するなら入力規則またはVBAのユーザーフォームを選ぶと安心です。
【操作のポイント】共有先のExcelバージョンが不明な場合は、特殊なコントロールへの依存を減らす構成にしましょう。
スピンボタンによる日付変更
フォームコントロールのスピンボタンは、日付を1日ずつ前後させる補助として使えます。
開発タブの挿入からフォームコントロールのスピンボタンを選び、日付セルの近くへ配置します。
スピンボタンは直接日付を表示する部品ではなく、リンクするセルの数値を増減させる仕組みです。
たとえばD2をリンクするセルにし、最小値を1、最大値を31に設定します。
その後、B2に基準月の初日を入れ、C2に次の数式を設定します。
=DATE(YEAR($B$2),MONTH($B$2),$D$2)
DATE関数は年、月、日を指定して日付を作成します。
D2の数値をスピンボタンで変えると、C2の日付も連動して変わります。
月内の日付をすばやく調整したい入力画面では、スピンボタンが補助操作として役立ちます。
ただし月末日を超える値の扱いは分かりにくくなるため、月の日数に応じた制御が必要です。
【操作のポイント】スピンボタンは日付の主入力ではなく、微調整用にすると操作意図が伝わりやすくなります。
入力用シートの設計
日付選択を使いやすくするには、機能だけでなく入力用シートの配置も重要です。
日付を入力するセルは、項目名の右側にまとめ、背景色や罫線で入力欄だと分かるようにします。
開始日、終了日、担当者、内容のように、入力順に上から並べると迷いにくくなります。
日付入力セルには淡い色を付け、計算結果のセルとは見た目を分けましょう。
セルのコメントやメモへ、日付は候補から選択してくださいという案内を加える方法もあります。
入力画面の目的は機能を増やすことではなく、誰が使っても同じ手順で正しく登録できる状態を作ることです。
特に複数人で使う台帳では、入力規則と保護設定を組み合わせると、数式セルの上書き防止にも役立ちます。
【操作のポイント】入力セル以外をロックする前に、ロックを解除するセルを選択してセルの書式設定を変更しておきます。
VBAでポップアップカレンダーを表示する方法【ユーザーフォームの作成】
続いては、セルをダブルクリックしたときなどにポップアップ形式のカレンダーを表示する方法を確認していきます。
| A | B | C |
|---|---|---|
| 1 | 案件名 | 登録日 |
| 2 | 見積作成 | ダブルクリック |
マクロ有効ブックの準備
VBAを使う前に、ファイルをExcelマクロ有効ブックとして保存します。
ファイルタブから名前を付けて保存を選び、ファイルの種類をExcelマクロ有効ブックに変更してください。
拡張子はxlsxではなくxlsmになります。
xlsx形式で保存するとVBAコードは保存されないため、作成後に閉じるとコードが失われるおそれがあります。
Visual Basic Editorは、開発タブのVisual Basic、またはAltキーとF11キーで開けます。
左側のプロジェクトエクスプローラーから対象ブックを探し、挿入メニューでユーザーフォームを追加します。
ポップアップ用の画面を作る場合、フォームに年と月を表示するラベル、日付を選ぶボタン、閉じるボタンを配置する構成が基本です。
社内で配布するファイルでは、マクロを有効にしてよい配布元かどうかを必ず確認してください。
【操作のポイント】既存ファイルを変更する前にコピーを保存しておくと、マクロ設定を誤った場合も元の表へ戻せます。
対象セルを判定するイベントコード
日付を入力する列だけでカレンダーを開くには、ワークシートのダブルクリックイベントを利用します。
Visual Basic Editorで対象シートをダブルクリックし、次のコードを入力します。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("C2:C100")) Is Nothing Then Exit Sub
Cancel = True
Target.Value = Date
Target.NumberFormatLocal = "yyyy/m/d"
End Sub
この例では、C2からC100をダブルクリックすると、そのセルへ当日の日付を入力します。
Intersectは、クリックしたセルが指定範囲と重なるかどうかを判定する関数です。
CancelをTrueにすると、ダブルクリック後にセル編集モードへ入る通常の動作を止められます。
実際のカレンダーフォームを作成した場合は、Target.Valueへ日付を代入する部分をフォーム表示の処理へ置き換えます。
【操作のポイント】イベントコードは標準モジュールではなく、動作させたいワークシートのコード画面へ入力します。
ポップアップ操作のイメージ
ポップアップカレンダーを利用する画面では、対象セル、数式バー、日付を選択する流れが分かるように設計します。
このように、選択セルを赤枠で示し、カレンダー上の選択日を強調すると、操作対象が分かりやすくなります。
日付をクリックしたらフォームを閉じ、選択中だったセルへ値を書き戻す仕組みにします。
ポップアップカレンダーは入力体験を向上させますが、VBAの保守が必要になる点も理解して導入しましょう。
【操作のポイント】カレンダーを閉じる操作と、選択せずに終了する操作を分けておくと、誤入力を防ぎやすくなります。
プルダウンとポップアップの使い分け【目的別の選択】
続いては、プルダウンとポップアップのどちらを選ぶべきかを確認していきます。
| 比較項目 | プルダウン | ポップアップ |
|---|---|---|
| 導入難易度 | 低い | 高い |
| 長期の日付選択 | 候補数が多い | 選びやすい |
短い候補から選ぶ業務
予約日や勤務日など、選択対象が数日から数十日程度に限られる業務では、プルダウンが適しています。
Excel標準の入力規則だけで作成できるため、マクロを有効にする必要がありません。
メール添付やクラウドで共有するブックでも扱いやすく、受け取った人が警告画面に戸惑う場面を減らせます。
候補数が少ないほど、一覧から選ぶ操作は速く、導入後の保守も簡単です。
たとえば今週の訪問予定だけを入力する表、締切日があらかじめ決まっている申請書などでは、プルダウンが実用的です。
候補の並び順は古い日付から新しい日付へそろえ、日付形式も統一しましょう。
【操作のポイント】候補数が多すぎるプルダウンは探す時間が長くなるため、対象期間を絞る工夫が必要です。
広い期間から選ぶ業務
誕生日、契約日、過去の実績日など、数年分の日付から選ぶ業務では、ポップアップカレンダーの視認性が役立ちます。
月を切り替えながら選べるため、何百件もの日付をリスト表示するよりも直感的です。
ただし、VBAを使ったファイルはマクロ有効ブックとして管理する必要があります。
社外へ送る帳票や、セキュリティポリシーが厳しい組織では、マクロがブロックされる可能性もあります。
利用者のPC環境が統一されている社内ツールでは、ポップアップカレンダーの利便性を活かしやすいでしょう。
運用開始前には、マクロの有効化手順、保存場所、更新担当者を決めておくと安心です。
【操作のポイント】日付選択の見やすさだけで決めず、配布先でマクロが使えるかを最初に確認します。
関数と入力補助の組み合わせ
日付を選ぶ機能は、入力後の計算と組み合わせることでさらに価値が高まります。
たとえば開始日がB2、終了日がC2にある場合、日数は次の数式で求められます。
=C2-B2+1
終了日から開始日を引くと経過日数が求められます。
両方の日を含める日数にしたい場合は、最後に1を加えます。
開始日または終了日が空欄のときにエラー表示を避けるなら、次の式が便利です。
=IF(OR(B2=””,C2=””),””,C2-B2+1)
OR関数でどちらかのセルが空欄かを調べ、空欄なら空文字を表示します。
日付がそろった場合だけ計算するため、入力途中の表も見やすくなります。
選択しやすい日付入力と、正確な日数計算を組み合わせることが、実務で使えるExcel表の土台です。
【操作のポイント】数式を設定した列は、テーブル機能を使うと新しい行にも数式が引き継がれやすくなります。
まとめ エクセルのカレンダーから日付を選択して入力する方法
Excelでカレンダーから日付を選択して入力するには、用途に応じて入力規則のプルダウンとVBAのポップアップを使い分けます。
候補日が少ない表では、入力規則のリストを使う方法が手軽で、マクロなしで共有しやすい選択肢です。
開始日と終了日のように日付の条件がある項目では、入力規則で範囲を制限すると前後関係のミスを防げます。
過去から未来まで広い期間の日付を扱う場合は、ユーザーフォームを使ったポップアップカレンダーも検討できます。
ただしVBAを使う場合は、xlsm形式で保存し、マクロを安全に運用する準備が必要です。
まずは入力規則によるプルダウンから始め、必要になった段階でポップアップ形式へ発展させる流れがおすすめです。
日付の表示形式、入力セルの見やすさ、開始日と終了日の条件も整えて、ミスの少ないExcel管理表を作りましょう。