書式 関数 EXCEL&VBA

エクセルでカレンダーを作成|祝日も自動で色付け

今回は『エクセルでカレンダー作成してみよう!』というトピックです。

作り方はカンタン。
この記事の手順に従って数式をセルにコピペするだけで基本の構造は完成します。

さらに、祝日自動を付ける方法も解説します。
貴方のオリジナルデザインで、世界にひとつだけのカレンダーを作ってみましょう。



カレンダーの作成方法

フレームを作る

まずは大まかなデザインを決定します。

ポイント
行数はヘッダー部分のデザインにもよりますが、日付のエリアは必ず6行分確保します。
これは、最大で6週にまたがる月があるからです。
列は最低でも曜日の数分(=7列)必要です。

上のサンプルでは、セルC1の「2024」と、セルD1の「5」は数字を直打ちします。
セルE1には以下の数式を入力しています。

TEXT ( DATE (C1, D1, 1) , "mmmm" )

DATE関数で、セルC1とD1の値を参照して該当月の1日(2024年5月1日)を算出し、その値を TEXT関数 を使って月を英語表記させました。


▲よかったらマネしてください

日付エリアに数式を入れる

ここが今回の記事のポイント、日付エリアです。
すべての日付のセルに同じ数式が入ります。

以下の数式を、まずは日付エリアの左隅(左上)のセルA3に入力します。

COLUMN (B1) - WEEKDAY ( DATE ($C$1, $D$1, 1) ) + 7 * ( ROW (A1) -1 )

『よくわからん』という方は、この数式をそのまま 日付エリアの左上のセルにコピペしましょう。

数式の解説
WEEKDAY関数 をつかって、該当月の1日の曜日番号を算出しています。
セルA3は「2-該当月1日の曜日番号」である「-2」を表示させたいのですが、他のセルでも同じ数式を使いたいので定数の2ではなく「COLUMN (B1)」とすることでセルの列が変われば2ではなく3、4、、、と変化するようにします。
さらに、数式を下の行にコピーしても使えるように、ROW関数 を使い「+ 7 * ( ROW (A1) -1 )」とすることで下の行になれば「7」ずつ加算されるようにしておきます。
(セルA3の場合は計算上「0=加算なし」となります)

これをセルG3までコピーします。


▲カレンダーどおり水曜日が1日(ついたち)になった!

さらに、8行目まで下方向にコピーします。


▲同じ数式ですべての日付に対応できた

つぎは、1日より前の日付や、31日より後の日付を 条件付き書式 を使って非表示にします。

条件付き書式で余計な日付を消す

日付エリアのセル範囲($A$3:$G$8)を選択します。

その状態でメニューの、[ホーム] タブにある「条件付き書式」をクリックして「新しい書式ルール」の設定画面を開きます。

「数式を使用して書式設定するセルを決定」を選択して、以下の数式を入力します。

=OR ( A3<=0, A3>DAY ( DATE ( $C$1, $D$1 +1, 0) ) )

数式の解説
DATE関数 の部分が示しているのは、翌月のゼロ日「2024年6月0日」、これはエクセル上では当月の月末「2024年5月31日」を表します。
数式全体は「セルの値が1より小さい、もしくは31より大きい場合」となり、「当月以外の数字の場合」を表します。

「書式」ボタンをクリックして、フォントの色を白(=セルの背景色と同じ色)に指定すれば完了です。


▲当月以外の日付が消えた

土日の書式を設定する

日付エリアがすっきりしたら、土日の文字の色を設定します。
日曜日(A3:A8)は 暖色系の色 を、土曜日(G3:G8)は 寒色系の色 を設定してみましょう。


▲土日に書式設定する

さらに、ヘッダー部分を好みの色・デザインにします。


▲祝日以外の部分は完成!

祝日も自動で色が変わるようにするには

祝日の一覧を作る

いよいよ最後の仕上げ、祝日に自動で色がつくようにします。

まず、別シートに 祝際日と振替休日の一覧を作ります。


▲「2024年 祝日」などでググってコピペしてください

祝日リストに名前を付ける

日付の部分のセル範囲(サンプルの場合は A2:A22)に「祝祭日」という名前を付けます。
A2:A22 を選択した状態で、メニューの「数式」タブの「名前の管理」で名前を付けることができます。


▲「祝祭日」シートの祝日一覧に名前を付ける

祝日に書式設定する

カレンダーのシートに戻り、日付のエリアに条件付き書式を設定します。

日付エリアのセル範囲($A$3:$G$8)を選択します。
その状態でメニューの、[ホーム] タブにある「条件付き書式」をクリックして「新しい書式ルール」の設定画面を開きます。

「数式を使用して書式設定するセルを決定」を選択して、以下の数式を入力します。

COUNTIF ( 祝祭日, DATE ($C$1, $D$1, A3 ) ) >=1


▲フォントには日曜と同じ暖色系の色を指定します。

OKをクリックして設定完了です。
しかし、カレンダーを見てみると、おかしな数字が表示されています。

これは、最初に設定した「余計な日付を消す」書式設定よりも、祝日の書式設定が優先されてしまったからです。

「条件付き書式」の「ルールの管理」画面を見てみると、祝日の書式設定が上位に表示されているのがわかります。


▲上位に表示されいる設定が優先される

祝日の書式設定の行を選択して「下へ移動」の矢印をクリックするだけで、優先順位が下がります。


OKをクリックすれば、祝日が反映したカレンダーの完成です。


▲カレンダーの完成!

試しに、セルD1の月の数字を変更してみるとカレンダーが変化し、祝日も正確に反映しているのが確認できます。


▲月を変更しても祝日も含め完璧に対応する

以上で『エクセルカレンダー作成|祝日も自動で色付け』は終了です。
その他の関連記事と合わせて仕事や趣味に役立ててください。

関連記事・広告






-書式, 関数, EXCEL&VBA
-, , , , ,