Excel関数でカレンダーを自動作成する方法をお探しですね。

広告

Excelで作る万年カレンダー|年月を変えるだけで自動更新される便利な作り方

Excelで毎月カレンダーを作るたびに日付を打ち直すのって、けっこう面倒ですよね。

月初が何曜日かを確認したり、祝日に色をつけたり…。

そんな手間を一気に解決してくれるのが「万年カレンダー」です。

年と月を入力するだけで、日付が自動で切り替わるので、一度作ってしまえばずっと使い回せます。

この記事では、Microsoft 365やExcel 2021以降で使える「SEQUENCE関数」を使って、初心者でも作れる万年カレンダーの作り方を解説します。

難しい数式はできるだけ避けて、シンプルに作る方法を紹介しますので、ぜひ試してみてください。

1. まずは完成イメージと準備をしよう

どんなカレンダーを作るの?

今回作るのは、「年」と「月」を入力するだけで、1か月分の日付が自動で表示されるカレンダーです。

たとえば、年のところに「2026」、月のところに「3」と入力すれば、2026年3月のカレンダーが表示されます。

翌月に変えたいときは、月の数字を「4」にするだけ。

いちいち日付を手入力する必要がないので、予定表や勤務表、教室のスケジュール管理など、いろんな場面で使えます。

シートを準備しよう

まずはExcelのシートに、入力欄とカレンダーの枠を用意します。

**入力欄を作る**
– F1セルに「年」、G1セルに「月」と入力します
– F2セルに西暦年(例:2026)、G2セルに月(例:3)を入力します

**カレンダーの枠を作る**
– A4からG4に「日、月、火、水、木、金、土」と曜日を入力します
– A5からG10までの6行7列が、日付を表示するエリアになります

なぜ6行も必要なの?と思うかもしれませんが、月によっては1日が土曜日で31日まである場合など、6週目まで必要になることがあるんです。

最初から6行分用意しておけば、どんな月でも対応できます。

入力ミスを防ぐ工夫

月の入力欄(G2セル)には、「データの入力規則」を設定しておくと便利です。

1. G2セルを選択
2. 「データ」タブ→「データの入力規則」をクリック
3. 「リスト」を選んで、元の値に「1,2,3,4,5,6,7,8,9,10,11,12」と入力

これで、月をドロップダウンから選べるようになります。

間違って「13」とか入力しちゃう心配もなくなりますね。

月名を表示させよう

A1セルあたりを大きめにして、月名を表示させると、カレンダーらしくなります。

A1セルに次の数式を入力してください:
“`
=DATE($F$2,$G$2,1)
“`

これで、指定した年月の1日が作られます。

このセルの表示形式を「yyyy年m月」に変更すれば、「2026年3月」のように表示されます。

**表示形式の変え方**
1. A1セルを右クリック→「セルの書式設定」
2. 「表示形式」タブ→「ユーザー定義」を選択
3. 種類に「yyyy年m月」と入力

ここで大事なのは、見た目は「2026年3月」でも、中身は日付データのままという点です。

Excelは日付を数値として扱っているので、この性質を利用すると、後で曜日や祝日の判定がしやすくなります。

2. SEQUENCE関数で日付を一気に表示させよう

たった1つの数式で完成

カレンダーの日付部分は、なんとA5セルに1つの数式を入れるだけで完成します。

Microsoft 365やExcel 2021以降なら、「スピル機能」という便利な機能が使えるので、6行7列の範囲に日付が自動で広がっていきます。

**A5セルに入力する数式(日曜始まりの場合)**
“`
=SEQUENCE(6,7,DATE($F$2,$G$2,1)-WEEKDAY(DATE($F$2,$G$2,1),1)+1,1)
“`

入力したら、A5からG10まで日付がズラッと表示されるはずです。

成功です!

数式の意味を理解しよう

ちょっと複雑に見えますが、順番に見ていけば難しくありません。

**①指定した月の1日を作る**
“`
DATE($F$2,$G$2,1)
“`
F2セルの年、G2セルの月、そして日は1日を指定しています。

**②1日が何曜日かを調べる**
“`
WEEKDAY(DATE($F$2,$G$2,1),1)
“`
WEEKDAY関数は、日付が何曜日かを数値で教えてくれます。

第2引数を「1」にすると、日曜日が1、月曜日が2、土曜日が7になります。

**③カレンダーの左上(最初の日曜日)を計算する**
“`
DATE($F$2,$G$2,1)-WEEKDAY(DATE($F$2,$G$2,1),1)+1
“`
たとえば、指定した月の1日が水曜日(4)だったとします。

カレンダーの左上に来る日曜日は、その3日前ですよね。

この計算式で、カレンダーの一番左上に入る日付を求めています。

**④SEQUENCE関数で6行7列に並べる**
“`
SEQUENCE(6,7,開始日,1)
“`
6行7列の表に、開始日から1日ずつ増やした日付を並べる、という意味です。

従来の方法だと、A5に最初の日付を入れて、B5に「=A5+1」、A6に「=A5+7」…と、たくさんのセルに数式をコピーする必要がありました。

SEQUENCE関数なら、A5セルだけで済むので、とっても楽ちんです。

表示を「日」だけにしよう

日付が「2026/3/1」のように年月日で表示されている場合は、表示形式を変更します。

1. A5からG10を選択
2. 右クリック→「セルの書式設定」
3. 「表示形式」タブ→「ユーザー定義」
4. 種類に「d」と入力

これで、画面上は「1」「2」「3」のように日だけが表示されます。

でも、中身は日付データのまま残っているので、後で条件付き書式を使うときに便利です。

月曜始まりにしたい場合

学校や会社では、月曜始まりのカレンダーのほうが使いやすいこともありますよね。

その場合は、こうします。

**曜日の見出しを変更**
A4からG4を「月、火、水、木、金、土、日」に変更

**A5セルの数式を変更**
“`
=SEQUENCE(6,7,DATE($F$2,$G$2,1)-WEEKDAY(DATE($F$2,$G$2,1),2)+1,1)
“`

WEEKDAY関数の第2引数を「2」にすると、月曜日が1、日曜日が7として扱われます。

これで月曜始まりのカレンダーになります。

3. 土日・祝日・当月外の日付を見やすくしよう

土曜日と日曜日に色をつける

日付が表示できたら、次は見た目を整えましょう。

まずは土日の色分けです。

**日曜日を赤くする**
1. A5からG10を選択
2. 「ホーム」タブ→「条件付き書式」→「新しいルール」
3. 「数式を使用して、書式設定するセルを決定」を選択
4. 数式欄に「=WEEKDAY(A5,1)=1」と入力
5. 「書式」ボタンをクリックして、フォントの色を赤に設定

**土曜日を青くする**
同じ手順で、数式を「=WEEKDAY(A5,1)=7」にして、フォントの色を青に設定します。

祝日も自動で色をつけよう

祝日も自動で色分けしたいですよね。

そのためには、別のシートに祝日の一覧を作る方法が便利です。

**祝日一覧を作る**
1. 新しいシートを作って「祝日一覧」という名前にします
2. A列に祝日の日付を入力します(例:2026/1/1、2026/1/13など)
3. 日付は「2026/1/1」のように、Excelが日付として認識できる形式で入力してください

**祝日の範囲に名前をつける**
1. 祝日の日付が入っているセル範囲を選択
2. 数式バーの左側にある「名前ボックス」に「休日」と入力してEnterキーを押す

これで、この範囲に「休日」という名前がつきました。

**条件付き書式を設定する**
1. カレンダーのA5からG10を選択
2. 「条件付き書式」→「新しいルール」
3. 数式欄に「=COUNTIF(休日,A5)>0」と入力
4. 書式でフォントを赤にする(または背景を薄い赤にする)

COUNTIF関数は、指定した範囲の中に条件に合う値がいくつあるかを数える関数です。

カレンダーの日付が「休日」の範囲に含まれていれば、そのセルに色がつきます。

会社独自の休業日や、お店の定休日も同じ一覧に追加すれば、オリジナルのカレンダーとして使えますよ。

当月以外の日付を薄く表示する

カレンダーを見ると、前の月や次の月の日付も表示されていますよね。

これを薄いグレーにすると、今月の日付がパッと分かりやすくなります。

1. A5からG10を選択
2. 「条件付き書式」→「新しいルール」
3. 数式欄に「=OR(YEAR(A5)<>$F$2,MONTH(A5)<>$G$2)」と入力
4. 書式でフォントの色を薄いグレーに設定

この数式は、「各セルの日付の年または月が、指定した年・月と違う場合」という条件を表しています。

条件付き書式の優先順位に注意

条件付き書式を複数設定すると、どれが優先されるかによって見え方が変わることがあります。

たとえば、当月外の日曜日を赤にするのか、グレーにするのか…。

一般的には、当月外の日付を薄く表示するルールを優先して、土日祝の色は当月の日付に対してつけると見やすくなります。

「条件付き書式」→「ルールの管理」を開くと、順番を調整できます。

必要に応じて並び替えてみてください。

ここまで設定できれば、年と月を変えるだけで、日付の並び、土日、祝日、当月外の表示がまとめて更新される、実用的な万年カレンダーの完成です!

4. 使いやすく仕上げるコツとエラー対策

入力欄と自動計算欄を区別しよう

万年カレンダーを長く使うなら、どこを入力するのか分かりやすくしておくと便利です。

– **入力欄(F2、G2)**:薄い黄色などの背景色をつける
– **日付表示エリア(A5からG10)**:直接入力しないことが分かるデザインにする

SEQUENCE関数で表示された範囲は「スピル範囲」と呼ばれます。

A5セルの数式の結果が、周りのセルに広がっているんです。

途中に文字や数値が入っていると、数式が展開できず「#SPILL!」というエラーが出てしまいます。

「#SPILL!」エラーが出たら

このエラーが出たときは、まずA5からG10の範囲に不要な入力が残っていないか確認してください。

見た目は空白でも、スペースや古い数式が残っていることがあります。

**対処法**
1. A5からG10を選択
2. Deleteキーを押してクリア
3. もう一度A5セルにSEQUENCE関数を入力

また、結合セルがスピル範囲内にあると、うまく展開できないことがあります。

セルを結合するなら、A1からC2など、日付表示エリアとは別の場所に限定しましょう。

予定を書き込みたいときは

予定を書き込む欄がほしい場合は、日付セルそのものに入力するより、カレンダーの下や右側にメモ欄を設けるほうが安全です。

日付セルに直接予定を書き込むと、SEQUENCE関数のスピル範囲を壊してしまう可能性があります。

予定表として使うなら、こんな方法があります:

– 日付の下に行を追加して、1週間ごとにメモ欄を作る
– 別の表に「日付」「予定」「担当者」を入力して、FILTER関数やXLOOKUP関数で該当日の予定を表示する

まずは日付だけの万年カレンダーを完成させて、必要に応じて機能を追加していくのがおすすめです。

印刷して使う場合

紙のカレンダーとして印刷したい場合は、こんな工夫をしてみてください。

**ページ設定**
– A1からG10を印刷範囲に設定
– 横1ページに収まるよう、拡大縮小を調整

**見た目の調整**
– 曜日行(A4からG4)に背景色をつける
– 日付セルを中央揃えにする
– 罫線を引く

A1の月名表示を「yyyy年m月」にしておくと、印刷後も何月のカレンダーか分かりやすくなります。

英語表記にしたい場合は、表示形式を「mmmm」(January、Februaryなど)、短縮表記なら「mmm」(Jan、Febなど)にすると、雰囲気が変わって面白いですよ。

Excel 2019以前のバージョンを使っている場合

SEQUENCE関数は、Excel 2021以降またはMicrosoft 365で使える関数です。

Excel 2019以前では「スピル機能」が使えないので、従来の方法で作る必要があります。

**従来の作り方**
– A5に開始日の数式を入力
– B5以降に「=A5+1」(前日+1)
– 次の行に「=A5+7」(上のセル+7)
– 必要な範囲にコピー

基本的な考え方は同じです。

DATE関数で指定月の1日を作り、WEEKDAY関数でカレンダー左上の日付を求め、表示形式と条件付き書式で見た目を整える…という流れを理解しておけば、バージョンが変わっても応用できます。

SEQUENCE関数対応版は数式が少なくて管理しやすいので、対応している環境なら、ぜひこの方法で作ってみてください。

まとめ

これで、年と月を変えるだけで自動更新される万年カレンダーの完成です。

一度作ってしまえば、毎月使い回せるので、とっても便利ですよ。

ぜひ試してみてくださいね!

広告