祝日表示の場合に日付を赤くする
続いては祝日表示された日付のフォントを自動で赤にします。
こちらの「条件付き書式」の数式には少し工夫が必要です。
D15セルを選択し、「条件付き書式」「新しいルール」です。
数式は「=countif(祝日,d16)>=1」と入力します。
数式の意味は、一つ下のセルであるD16に含まれている文字列がセル範囲「祝日」に一つ以上含まれていればセルの書式を設定する、という意味です。数式を「一つ以上」とした理由は、祝日の中に振替休日を表す「休日」が複数存在するためです。
「書式」は赤いフォントを設定します。
下記のルールを確認してください。
下図のように「昭和の日」の2020年4月29日が赤く表示されました。
それではD15セルの書式を各日付セルにコピー/貼り付けをします。
見事に祝日の日付が赤くなったのが確認できます。
当該月ではない場合は祝日であってもグレー表示にする
いよいよ最後の「条件付き書式」設定です。
A18セルに下記の条件を設定します。
A1セルで設定した年月以外の日付のセルをグレー表示に書式設定します。
「指定の値を含むセルだけ書式設定」、セルの値に「次の値の間以外」を選択します。
値の範囲は、A1セル(入力した年月)とちょうど1ヶ月後-1日です。
「EDATE関数」とは、正確な1ヶ月後、3ヶ月後の日付を取得する関数です。
ご存知のように、月によっては31日であったり30日であったり、28日であったり(今年閏年で29日)と異なりますから単純に1ヶ月後を求めることはできません。その計算を自動で計算してくれるのがエクセルに標準で搭載されている「EDATE関数」です。
EDATE関数の引数は下記のようになります。
=EDATE(基準となるセル,月数)
1ヶ月後であれば月数を「1」、2ヶ月前は「-2」といったように2つ目の引数を設定します。
数式の意味はお分りいただけたでしょうか。
A19セルには、これまた数式を利用します。
ここでは「OR関数」を利用します。
一つ上の日付の値が該当月の1日より小さい日付か、もしくは該当月末より大きい日付かを満たせば書式を変更する、という意味です。
言葉で数式を説明すると「日付が(ここでは2020年4月1日)よりも小さいか、月末(ここでは2020年4月30日)より大きければ書式を変更」する設定です。
OR関数の中の数式のどれかを満たせば、OR関数は「TRUE」の戻り値を返します。これを利用して書式設定をしています。
うまく条件付き書式設定ができれば、下図のようになります。
日付をグレーにする条件付き書式を設定したセル(A18とA19)の書式を該当セルに貼り付けた状態が下図になります。
もちろん、A1セルの年月を変えれば自動で祝日が表示され、該当月以外の日付はグレー表示されます。
予定を書き込んでボタンで月を変更するにはマクロが必要
この祝日自動表示万年カレンダーに予定を書き込んで、矢印ボタンで月の移動をしても予定を表示(保存)させる方法もあります。
ただ、それにはマクロが必要になってきます。
少し記事も少し複雑になりそうですので、そちらはまた後日記事にして投稿したいと思います。
追記:まずは簡単なマクロを利用して、ボタンによる年月の移動を可能にする記事を作成しました。
追記:さらに、マクロを利用して予定を書き込むことができるエクセルファイルを作成しました。
追記:noteにて、予定が書きやすい全自動カレンダーを2種類紹介中です。
一つのシートで予定を記憶、自由自在に使いこなせるエクセル万年完全カレンダーです。
ぜひご検討ください!
コメント