エクセルを使って月間カレンダーを作成する方法を解説します。
年と月を入力すると自動で日にちが変わるのでとても便利です。
動画で見たい方はこちらからどうぞ!
エクセルで日付が自動で変わる月間カレンダーを作る方法
最初に以下のような表を作成します。
続いてF1のセルに、
=date($A$1,$C$1,1)
と入力します。
これは後ほどカレンダーに日にちを表示させる際の計算用に使用します。
F4キーで絶対参照にする点に注意してください。
入力できたらエンターで確定すると、以下のようにF1セルに日付が表示されます。
このdate関数は引数に「年」、「月」、「日」を渡すことで、それらを組み合わせた日付を返してくれる関数です。
上記のように関数を使うことでA1の「年」や、C1の「月」の値が変更された時に、変更に応じた日付を出力することが可能になります。
続いて今F1セルに作成した日付が何曜日にあたるのかをG1セルに表示させます。
G1のセルに、
=WEEKDAY($F$1)
と入力します。
ここでもF4キーを押して絶対参照にするようにしてください。
入力できたらエンターキーで確定します。
すると以下のようにG1セルに7と表示されます。
weekday関数は引数に入力した日付をもとにして曜日を返してくれる関数です。
ただしこの時には「土曜日」といったような日本語ではなく、数字が表示されます。
返された数字は以下のような意味をもちます。
今回は7でしたので、「2022年1月1日は土曜日である」というわけです。
これがわかれば土曜日のG3セルに2022/1/1が入ることが決まります。
ここまでできたら、次は表の一番左上であるA3セルの値を確定させます。
A3セルのセルは2022/1/1のセルの6つ前になります。
ただしこの6をそのまま使ってしまうと年や月が変更された時に対応できないので、関数を使用します。
A3のセルが「何個前になるのか」は、当年当月1日の曜日の値から1(日曜の数値)を引いてあげることで求めることが可能です。
G7のセルに曜日を出力したのはこの計算に使用するためでした。
ではA3のセルに、
=$F$1-($G$1-1)
と入力します。
これで確定すると2021/12/26と表示され、無事にカレンダーにおける最初のセルの値を関数で求めることができました。
ただこの状態だと年や月まで全て表示されて長くなってしまっているので調整していきます。
A3のセルを選択し、[Ctrl] + [1]でセルの書式設定を表示させます。
続いて「ユーザー定義」を選択します。
yyyy/m/dと表示されていると思いますが、これはyが「年」、mが「月」、dが「日」を表しています。
今回必要なのは「日」ですので「d」だけ残します。
これで「日」だけが表示されてスッキリするようになりました。
これができたら右側のセルの日付を作成していきます。
まず右隣のB3セルの値を求めます。
式は、
=A3+1
です。
これで隣のセルの値も求まりました。
続いて右側のセルも求めていきます。
B3よりの右側のセルに関してはB3のセルをドラッグしてオートフィルで求めます。
最初に作成していたG3の値はここで上書きしてしまって大丈夫です。
これで1行目は完成です。
続いては2行目を作成します。
2行目の最初のセルであるA4のセルは、1行目の右端のセルであるG3に+1をした値になります。
続けて右隣のセルを、
=A4+1
で作成します。
できたら、1行目の時と同様に右にドラッグしていきます。
3行目以降に関しては2行目の値を下にドラッグすることで作成可能です。
これで全ての行が埋まりました。
月に関係ない日付を非表示にする
続けて、該当月以外の日付を非表示にしていきます。
上記の例でいえば1月以外の日付である、
・12/26~12/30
・2/1~2/5
を非表示にします。
該当月以外を非表示にするためにはMONTH関数を使用します。
ホームタブの「条件付き書式」から「新しいルール」を選択します。
続いて「数式を使用して、書式設定するセルを決定」を押します。
「次の数式を満たす場合に値を書式設定」のボックスの中に、
=MONTH(A3)<>MONTH($F$1)
と入力します。
A3には絶対参照をつけず、F1には絶対参照をつける点に注意が必要です。
このMONTH関数は引数に指定した日付の「月」の部分を返す関数で、例えばMONTH(2022/1/1)とすると、1と表示されます。
<>は否定を表します。
そのため、
=MONTH(A3)<>MONTH($F$1)
と書くことで、「カレンダーの各日付が該当の月でない場合」という意味の条件式になります。
続けて「書式」を選択します。
表示形式タブから「ユーザー定義」を選択し、
;;;
と入力します。
これでOKを押すとA1セルが空欄になります。
これはA1セルが12月で1月でないため非表示になっている状態です。
ではこれを他の日付にもコピーします。
コピーするにはペンキのようなマークを押します。
すると緑の枠線が出てくるのでこれをドラッグしてすべての日付に適用します。
これで1月以外の日付が非表示になりました。
カレンダーの土日の色を変更する
続けて土日の日付の色を変更します。
A3のセルを選択した状態で、「条件付き書式」の「新しいルール」を選択します。
続けて「数式を使用して書式設定するセルを決定」を選択し「次の数式を満たす場合に書式設定」の中に以下のように入力します。
=WEEKDAY(A3)=1
このように記載することで、「日付が日曜日であれば」という条件式が作成されます。
続けて「書式」から「フォント」を選択し、「色」を赤にします。
これでOKを押し、先ほどと同様にペンキマークからそれぞれの日付に書式を適用すると日曜日が赤色になります。
土曜日の色も同様の方法で色を変えていきます。
A3のセルを選択し、「条件付き書式」から「新しいルール」を選択。
「次の数式を満たす場合に値を書式設定」には、
=WEEKDAY(A3)=7
と入力します。
続けて「書式」から「フォント」の「色」を青に設定します。
OKを押し書式を各日付に適用すると土曜日の日付の文字色が青になります。
計算用の日付を非表示にする
最後にF1とG1セルに作成した計算用の日付を非表示にします。
この値を削除してしまうとカレンダーがおかしくなってしまうので注意が必要です。
非表示にするためにはF1とG1セルを選択した状態で、[Ctrl]+[1]を押し、「セルの書式設定」を表示させます。
続いて「ユーザー定義」に、
;;;
と入力し、OKを押します。
これで計算用のセルが非表示になりました。
これで月間カレンダーが完成です!