【エクセル】自動カレンダー作成
「年と月」を選択すれば、その月の「カレンダー」が表示されるようなエクセルシートを作っていこうと思います。
カレンダーを作ろう
まずはベースを作ろう

今回は普通のカレンダーのようなデザインで作ってみます。
年と月を入力しよう

とりあえず、年は「2020~2024」まで入れておいて、月は「1~12」までを入れればいいですね。
データの入力規則を設定しよう

まずは「B2」のセルを選択します。
そして「データ」を開き、その中の「データの入力規則」を選択します。

この画面が出るので「入力値の種類」から「リスト」を選択します。

赤枠で囲んだ部分をクリックしましょう。

入力した「2020~2024」を選択し、「↓」のようなボタンを押します。

先ほど選択した範囲が入っていることを確認し、「OK」を押します。

これで「年」を選択できるようになりました。
こういったものを「ドロップダウンリスト」と言います。
同じ手順で「月」も「ドロップダウンリスト」を作りましょう。

こうですね。
日にちを入力しよう
カレンダーに日にちを入力していく際に必要な情報が2つあります。
選択した月の「1日」を求める(DATE関数)
ここでは「DATE関数」を使います。

入力するセルはどこでもいいですが、わかりやすく「F2」に入力しましょう。
「DATE関数」は「=DATE(年,月,日)」のように記述します。

この場合「B2」が「2020」、「D2」には「11」が入力されていて、日のところに「1」を入力しているので「2020/11/1」となります。
これで「11月1日」が求められました。
「1日」の曜日を求める(WEEKDAY関数)
次に、「WEEKDAY関数」を使っていきます。

これもどこでもいいですが隣の「G2」に入力していきましょう。
「WEEKDAY(F2,1)」と記述しました。
さきほど「DATE関数」で求めた「年月日」を「シリアル値」として入れてあげて、「,(カンマ)」の後に「1」を入れます。
WEEKDAY関数を理解する
この「1」は「曜日」を「1~7もしくは0~6」のどれに振り分けるかの種類を選ぶためのものです。
今回は、「1」を選んだので、「数値1(日曜日)~7(土曜日)」が選ばれます。
よって、日曜が1、月曜が2、火曜が3、水曜が4、木曜が5、金曜が6、土曜が7となります。

「2020/11/1」は「日曜日」なので「1」と表示されました。
2つの情報を使ってカレンダーを埋めよう

このように記述することでカレンダーの最初の「日曜日」を埋めることができます。
この式を分かりやすくすると
「=2020/11/1-(1-1)」⇒「=2020/11/1-0」
となるので
「=2020/11/1」
になりますね。
12月でも見てみよう
12月を選ぶと…

「F2」には「2020/12/1」
「G2」には「火曜日」の「3」が入ります。
そうすると、式は
「=2020/12/1-(3-1)」⇒「=2020/12/1-2」
となるので
「=2020/11/29」
になります。
なので、カレンダー最初の日曜日は「11月29日」と表示されます。

あとは「最初の日曜日」に「+1」していけばいいですね。
ではカレンダーを埋めましょう。

こんな感じですね。
見やすく整えよう
カレンダーには「日」があればいいので「年月」をなくしましょう。

上の画像のように、すべて選択してあげて「右クリック」、「セルの書式設定」を開きます。

「ユーザー定義」を選んで、「種類」に「d」と打ち込みます。そして「OK」。

これで「日」のみの表示となりました。
あとは好みで色を付けて下さい。

見えなくていいところは、白文字(背景と同じ色)で見えなくしましょう。
完成です!
まとめ
いかがでしたか?うまくつくれましたか?
祝日を赤で塗りたい場合もあると思います。
調べれば方法が出てくるので、ぜひトライしてみてください。
それではまた。