当サイトはアフィリエイト広告を利用しています。
自分でカレンダーを作れると、自分好みのデザインにできるうえ、購入費用を浮かせることができて便利です。
でも、12ヶ月分の日付や曜日を手入力するのはたいへんです。年や月から自動反映されるようにしたいですよね。
そこで今回は、Excelで日付と曜日が自動反映されるカレンダーを作る方法をご紹介します。
【無料】Excelのカレンダーテンプレート
自作のカレンダーテンプレートをご紹介します。作成したのは以下の3つのテンプレートです。
- 縦型の年間カレンダーテンプレート
- 横型の月間カレンダーテンプレート
- 曜日固定型の月間カレンダーテンプレート
すべて無料ですので、お急ぎの方はダウンロードしてお使いください。
縦型の年間カレンダーテンプレート

月ごとに縦に日付が並んだ年間カレンダーです。予定書き込み欄もあります。
A1に「2023」のように「年」を入力すると、日付や曜日が自動反映されます。土曜日は薄い青色で塗りつぶされ、日曜日は薄い赤色で塗りつぶされます。
横型の月間カレンダーテンプレート

日付が横に並んだ月間カレンダーです。タスクや人名を入力してタスク管理表やシフト表として使うこともできます。
A1に「2023」のように「年」を、B1に「1」のように「月」を入力すると、日付や曜日が自動反映されます。土曜日は薄い青色で塗りつぶされ、日曜日は薄い赤色で塗りつぶされます。
曜日固定型の月間カレンダーテンプレート

卓上カレンダーによく用いられる曜日固定型の月間カレンダーです。日曜日始まりです。
A1に「2023」のように「年」を、B1に「1」のように「月」を入力すると、日付が自動反映されます。マスに余りがある場合は前月や翌月の日付もグレーで表示されます。
Excelで日付と曜日が自動反映されるカレンダーを作るときに使う関数
Excelで日付と曜日が自動反映されるカレンダーを作るときは、以下のような関数を使います。
- DATE関数
- IF関数
- DAY関数
- WEEKDAY関数
DATE関数
DATE関数(デイト関数)は、指定された年、月、日から日付を作成する関数です。
DATE(年, 月, 日)
- 年(必須)
- 年を表す数値を1~4桁で指定する。
- 月(必須)
- 月を表す数値を1~12の範囲で指定する。
- 日(必須)
- 日を表す数値を1~31の範囲で指定する。
IF関数
IF関数(イフ関数)は、条件を満たす場合と満たさない場合とで処理を変える関数です。
IF(論理式, 真の場合, 偽の場合)
- 論理式(必須)
- 条件を指定する。
- 真の場合(必須)
- 条件を満たす場合の処理を指定する。
- 偽の場合(必須)
- 条件を満たさない場合の処理を指定する。
DAY関数
DAY関数(デイ関数)は、日付から日を取り出す関数です。
DAY(シリアル値)
- シリアル値(必須)
- 日を取得したい日付を指定する。
WEEKDAY関数
WEEKDAY関数(ウィークデイ関数)は、日付に対応する曜日を返す関数です。
WEEKDAY(シリアル値, [種類])
- シリアル値(必須)
- 曜日を求めたい日付を指定する。
- 種類(省略可)
- 日付に対応する曜日をどの数字で表すか以下のいずれかで指定する。省略すると「1」として処理される。
- 1:1(日)~7(土)
- 2:1(月)~7(日)
- 3:0(月)~6(日)
Excelで日付と曜日が自動反映されるカレンダーを作る方法
Excelで日付と曜日が自動反映されるカレンダーを作る方法を、以下の2パターンにわけてご紹介します。
- 縦型のカレンダーの場合
- 曜日固定型のカレンダーの場合

mono
横型のカレンダーの作り方は縦型とほぼ同じなので、縦型の作り方を参考にしてみてください。
縦型のカレンダーの場合
縦型のカレンダーの作り方を、「縦型の年間カレンダーテンプレート」を例にご紹介します。
日付を自動反映させる方法
日付を自動反映させるには、まず年と月を入力します。

末尾の「年」「月」は、表示形式の設定で表示されるようにしています。やり方は以下の記事を参考にしてみてください。
日付を表示したい範囲を選択して[Ctrl]+[1](フルキー)を押します。

「セルの書式設定」が表示されたら、「表示形式」タブ⇒「ユーザー定義」⇒「d」と入力⇒「OK」をクリックします。これで年月日を入力しても日付だけが表示されるようになります。

最初の日付を表示したいセルに=DATE($A$1,$A$2,1)
と入力します。$A$1
には年を入力したセルを、$A$2
には月を入力したセルを指定してください。

翌日の日付を表示したいセルに=A3+1
と入力します。A3
には最初の日付が表示されているセルを指定してください。この数式を28日目までオートフィルします。

29日目のセルに=IF(A30="","",IF(DAY(A30+1)=1,"",A30+1))
と入力します。A30
には28日目のセルを指定してください。この数式を31日目までオートフィルします。

これで日付が自動反映されます。29日・30日・31日は、存在する場合のみ表示されます。

曜日を自動反映させる方法
曜日を自動反映させるには、まず曜日を表示したい範囲を選択して「セルの書式設定」を表示し、「表示形式」タブ⇒「ユーザー定義」⇒「aaa」と入力⇒「OK」をクリックします。これで曜日が「月火水木金土日」の形式で表示されるようになります。

最初の日付の曜日を表示したいセルに=IF(A3<>"",A3,"")
と入力します。A3
には最初の日付が表示されているセルを指定してください。この数式を31日目までオートフィルします。

これで曜日が自動反映されます。日付が存在しない場合は曜日も表示されません。


mono
残りの11ヶ月分も同様に作成すれば、翌年以降は年を変更するだけでカレンダーが作成されます。
曜日固定型のカレンダーの場合
曜日固定型のカレンダーの作り方を、「曜日固定型の月間カレンダーテンプレート」を例にご紹介します。
日付を自動反映させるには、まず年と月を入力します。末尾の「年」「月」は、表示形式の設定で表示されるようにしています。

印刷範囲外に=DATE(A1,B1,1)
と入力し、その月の最初の日付が表示されるようにします。A1
には年を入力したセルを、B1
には月を入力したセルを指定してください。これは計算用なので最終的に非表示にしてしまってもOKです。

日付を表示したい範囲を選択して「セルの書式設定」を表示し、「表示形式」タブ⇒「ユーザー定義」⇒「d」と入力⇒「OK」をクリックします。

最初の日曜日のセルに=I2-WEEKDAY(I2)+1
と入力します。I2
には最初の日付が表示されているセルを指定してください。

すると、その月の1日が日曜日の場合は「1」と、日曜日ではない場合は、1日より前の直近の日曜日の日付が表示されます。

あとは数式バーに=前日のセル+1
と入力するだけです。
たとえば、最初の月曜日のセルに=最初の日曜日のセル+1
と入力して土曜日のセルまでオートフィル⇒最終週のセルまでオートフィル⇒2回目の日曜日のセルに=最初の土曜日のセル+1
と入力して最終週のセルまでオートフィルすると速いです。

これで日付が自動反映されます。マスに余りがある場合は前月や翌月の日付も表示されます。

Excelで当月以外の日付の色をグレーにする方法
Excelで当月以外の日付をグレーにするには、まず日付の表示範囲を選択して「新しい書式ルール」を表示し、「数式を使用して、書式設定するセルを決定」⇒=MONTH(A3)<>$B$1
と入力⇒「書式」をクリックします。A3
には最初の日曜日のセルを、$B$1
には月が入力されているセルを指定してください。

MONTH関数(マンス関数)は、日付から月を取り出す関数です。
MONTH(シリアル値)
- シリアル値(必須)
- 月を取得したい日付を指定する。
「セルの書式設定」が表示されたら「フォント」タブを開き、「色」からグレーを選択して「OK」をクリックします。

「新しい書式ルール」に戻ったら「OK」を押して閉じます。これで当月以外の日付の色がグレーになります。

Excelで土日祝日に色を付ける方法
Excelでは、条件付き書式と関数を組み合わせることで土日祝日に自動で色を付けることができます。
詳しいやり方は以下の記事で解説していますので、そちらをご覧ください。
まとめ
今回は、Excelで日付と曜日が自動反映されるカレンダーを作る方法をご紹介しました。
Excelでカレンダーを作る方法は意外と簡単です。いくつかの関数と条件付き書式の使い方がわかっていれば、年間カレンダーも数分で完成するでしょう。
自分好みのカレンダーを作りたい方や、カレンダーの購入費用を節約したい方は、ぜひこの記事を参考にしてみてくださいね。
Udemyでは、買い切りの動画講座で好きな分野について自分のペースで学ぶことができます。
パソコンだけでなくスマホにも対応しているので、移動時間や休憩時間にスマホで学習することも可能です。
30日間の返金保証付きなので、初めてでも安心して受講できますよ。
▼ おすすめのExcel VBA講座はこちら ▼