見出し画像

【Excel】日付を自動更新できるカレンダーの作り方★

こんにちは、HARUです!

皆さん、新年あけましておめでとうございます!
昨年は新たにNOTEでの配信を始め、多くの方に記事をご覧いただきました。
2024年も当アカウントを何卒よろしくお願いいたします!

今回は年始めらしく、日付を自動更新できるカレンダーの作り方をご紹介します。

具体的には、リストから該当の月を選択すると、

  • 選択した月の日付に切り替える

  • 月初日の開始位置はその曜日にあわせる

  • 土日祝日に色づけする

  • 前後月の日付をグレーアウトする

  • 今日の日付を目立たせる

などといった更新をダイナミックに実行する仕組みを創り上げていきます。

カレンダーを作る機会はなくても、日付を司る関数や条件付き書式など、Excel仕事で欠かせないエッセンスがたくさん詰まっていますので、ぜひ最後までお付き合いください!


↓投稿者のYouTubeチャンネルはこちらをチェック!↓




自動更新カレンダーの作り方


下準備

カレンダーを作る前に、ワークシート上で下準備をしていきます。
今回のサンプルでは、行の高さは25、列の幅は6、デフォルトで引かれている目盛り線は非表示にしてあります。

目盛り線は「表示」タブの「目盛線」で切り替える


①年月と曜日の情報を入力し、以下6行7列の範囲に罫線を引く。

②欄外または別シートに1~12の連番を用意し、「月」の欄にその数字群を参照するドロップダウンリストを設定する。

データの入力規則:Alt→D→L


③対象年の祝日情報を検索し、祝日リストとしてExcelに貼り付ける。

これらの祝日がしっかり「日付」として認識されているかは、数式バーで確認しておきましょう。
※Ctrl+Shift+^で標準の表示形式に戻したときにシリアル値になるか?というチェックの仕方でもOKです。


日付の数式

カレンダーを作る下準備が整ったので、続いて日付を生成する数式を入力していきます。

①SEQUENCE関数を挿入する。
(SEQUENCE関数はExcel2021、Microsoft365のバージョンで使用できる関数です)


②第一引数「行」を6、第二引数「列」を7とする。
※A3セルを起点として、日付の範囲を6行7列で生成するため、上記のように指示します。


③第三引数「開始」にはDATE関数を挿入し、対象月の月初日を指示する。
(DATE関数の第一引数「年」と第二引数「月」はセル参照、第三引数「日」には直接1と入力します。)

ただし、すべての月の開始日が日曜日であるとは限らないため、月初日の曜日にあわせて前月の数日分を含むように日付の範囲を生成する必要があります。

ここでは、WEEKDAY関数を使って開始日を調整します。
WEEKDAY関数は参照した日付(シリアル値)の曜日を数値で返す関数です。


④DATE関数で求めた月初日から、WEEKDAY関数で取得した月初日の曜日番号を差し引く。

※デフォルトの設定は上図のように種類が先頭の1となっていて、日曜日「1」、月曜日「2」……土曜日「7」と表示します。

試しにこの種類で結果を求めると、たとえば2024年1月1日は月曜日なので、曜日番号は「2」が返りますよね。
これを単純に月初日から差し引くと開始日が2日遡ることになりますので、“前月12月の月末日が2日分表示される”ことになります。

勘の良い方は気づかれたかもしれませんが、今回のサンプルは日曜日スタートのカレンダーなので、月曜日が月初日の2024年1月の場合は前月1日分だけ返れば良いのです。


⑤「+1」で調整する。

※WEEKDAY関数の第二引数「種類」を「2」とすることでも、同様の調整処理が可能です。

結果、該当期間のシリアル値がスピルで生成されます。

↓スピルのしくみを詳しく解説した記事はこちら↓



日付の書式

ここからは、日付の書式を設定していきます。

①対象範囲を選択し、Ctrl+1で「セルの書式設定」を開く。
②「表示形式」タブ→「ユーザー定義」にて"dd"と入力し、Enterで決定する。

日付が2ケタで表示されます。

③カレンダー全体の書式をお好みで設定する。
(下図は英数字のフォントを「Tw Cen MT」、かなのフォントを「HGPゴシックM」に設定した状態です。その他、フォントサイズ、太字、曜日見出しの色づけなどを任意設定しています。)


次に、土日祝日や当月以外の日付に色づけしていきます。
手始めに、土曜日の日付のフォント色を「青」にします。

④日付範囲を選択した状態で、「ホーム」タブ→「条件付き書式」→「新しいルール」をクリックする。


⑤「数式を使用して、書式設定するセルを決定」をクリックし、条件となる数式を入力する。
⑥右下の「書式」をクリックする。

【=WEEKDAY(A3)=7】
WEEKDAY関数は参照した日付の曜日番号を返すのでしたね。
第二引数「種類」の指示を省略すれば、デフォルトで日曜日は「1」、月曜日は「2」、土曜日は「7」を返します。
そのため、“WEEKDAY関数で取得した数字が「7」であればその日が土曜日である”という条件が成り立つのです。


⑦「フォント」タブ→「色」で青色を選択し、右下の「OK」で決定する。


⑧書式のプレビューが青字になっていることを確認し、右下の「OK」で決定する。

土曜日のみ、青字になります。


続いて、日曜祝日のフォント色を「赤」にします。
(条件付き書式の新しい書式ルールを設定する画面にアクセスするところまでは同じです)

⑨「数式を使用して、書式設定するセルを決定」をクリックし、条件となる数式を入力する。
⑩右下の「書式」をクリックする。

【=OR(WEEKDAY(A3)=1,COUNTIF($M:$M,A3)>0)】
以下2つの条件いずれかに当てはまるかどうかを、OR関数で判定しています。

  • WEEKDAY関数で取得した曜日番号が「1(=日曜日)」である。

  • 祝日リストにおいて対象日の数を数え、その値が0を超える(=その日が祝日である)。


⑪「フォント」タブ→「色」で赤色を選択し、右下の「OK」で決定する。


⑫書式のプレビューが赤字になっていることを確認し、右下の「OK」で決定する。


日曜祝日のみ、赤字になります。


さて、前後月の日付も当月と同じように表示されているのは少し見にくいですよね。
そこで続いては、当月以外の日付を薄いグレーで表現します。
(条件付き書式の新しい書式ルールを設定する画面にアクセスするところまでは同じです)

⑬「数式を使用して、書式設定するセルを決定」をクリックし、条件となる数式を入力する。
⑭右下の「書式」をクリックする。

【=MONTH(A3)<>$E$1)】
MONTH関数で日付から「月」の情報を取り出し、その月がE1セルのリストで選択している当月ではない場合、という条件を設定しています。
※E1セルを絶対参照にすることを忘れないようにしましょう。


⑮「フォント」タブ→「色」で薄い灰色を選択し、右下の「OK」で決定する。


⑯書式のプレビューが薄い灰色になっていることを確認し、右下の「OK」で決定する。


当月の前後月に該当する日付が薄く表現されます。


ここからは任意設定ですが、今日の日付を自動でハイライトするしくみも作ってみましょう。
(条件付き書式の新しい書式ルールを設定する画面にアクセスするところまでは同じです)

⑰「数式を使用して、書式設定するセルを決定」をクリックし、条件となる数式を入力する。
⑱右下の「書式」をクリックする。

【=A3=TODAY()】
その日が本日の日付に該当するか、という条件を指示するシンプルな設定ですね。


⑲「塗りつぶし」タブ→「背景色」でお好みのカラーを選択し、右下の「OK」で決定する。


⑳書式のプレビューが選択した色で塗りつぶされていることを確認し、右下の「OK」で決定する。


本日の日付がハイライトされます。


試しに対象月を変更してみましょう。

とてもいい感じですね!
ぜひ様々なケースで使ってみてください。



補足


月間スケジュール表

本記事で触れた条件付き書式のテクニックを「月間スケジュール表」に応用した動画は↓こちら↓です。

対象年月の選択に連動して、日付や曜日の色づけが自動更新されます。ぜひチェックしてみてくださいね!



カレンダーテンプレート

Microsoft Officeには豊富なテンプレートが用意されています。
日付の確認だけでなく、スケジュールもあわせて入力したいときに活用してみてください。

①「ファイル」タブ→「その他のテンプレート」にアクセス。

②検索欄に”カレンダー”と入力。

③お好みのテンプレートをダブルクリック。

テンプレートが挿入されます。

月ごとにシートが分かれているものや、年間日程が一覧になっているものまで様々です。

※米マイクロソフト社が開発したカレンダーの標準テンプレートは”日本の祝日には対応していない”ため、必要に応じて条件付き書式を追加設定しましょう。



アドイン

Officeのアドインには、カレンダー機能に特化したものがあります。

①「開発」タブ→「アドイン」→「ストア」にて、"Calender"と検索する。

②「Mini Calendar and Date Picker」というアドインを「追加」→「続行」する。

下図のようなカレンダーオブジェクトが挿入されます。

特定のセルを選択した状態でカレンダーの日付をクリックすると、該当の日付をセルに入力されます。

あくまで参考までに!




いかがでしたか?
今回は日付や曜日が自動更新されるカレンダーの作成方法を解説しました。

冒頭にも触れましたが、カレンダーを作る機会はなくても、日付を司る関数や条件付き書式など、Excel仕事で欠かせないエッセンスがたくさん詰まっていますので、実務で積極的に実践していきましょう!



↓↓記事の内容を動画で解説しています↓↓
※本記事の委細が動画収録当時のバージョン・解説内容と異なる場合があります。

↓↓Excel操作をとにかく高速化したい方へ↓↓

↓↓実務直結の関数活用術を網羅的に学びたい方へ↓↓

この記事が気に入ったらサポートをしてみませんか?