HAKADORI その他

Excel 条件付き書式で曜日ごとにセルへ色づけ

2016.10.17 月

Excel 条件付き書式で曜日ごとにセルへ色づけ

こんにちは、CMB室の藤田です。

以前「Excelでガントチャートを作成する」という記事で Excel のセルに曜日によって色をつける設定をしました。
この方法は条件付き書式という機能で行っています。

条件付き書式で曜日に色がついています。

● 日付から曜日の判別

まず、例としてセル B1に日付を入力します。

「1/23」と入力します。

Excel は入力した内容からセルの書式を認識して日付形式にしてくれます。親切なのかお節介なのかわかりませんがいかにも Micr◯s◯ft 的な機能ですね。それはともかく、自動的に日付形式の書式になりました。

「1月23日」という表記になりました。

次に、横のセルに以下の関数を入れます。
=WEEKDAY(B1)

WEEKDAY関数を入力。

WEEKDAY 関数は指定した日付から曜日番号を返します(参考:WEEKDAY 関数)。曜日番号というのは日曜日が、月曜日が…と続き土曜日のまで続くインデックスのことです。デフォルトでは日曜スタートとなっていますが、オプションの指定で月曜スタートにしたり、最初の値をに設定することができます(詳細はヘルプを参照)。例の場合では2016年1月23日が土曜日なのでが返されました。

2016年1月23日が土曜日なので7が返されました。

とはいえ、曜日を番号ではなくちゃんと文字で表示させたいものです。というわけで関数に手を加えてみました。
=CHOOSE(WEEKDAY(B1),"日","月","火","水","木","金","土")

CHOOSE 関数を入力。

CHOOSE 関数は、インデックスから値を返します(参考:CHOOSE 関数)。例では WEEKDAY 関数から2016年1月23日→を返しているので、CHOOSE 関数によって「(曜日)」が返されました。

CHOOSE 関数によって「土」が返されました。

あとは、セルの内容を下へフィルコピーしていくと日付と曜日が自動的に作成されます。

● ユーザー定義で曜日を表示

しかし、関数を組み合わせなくても曜日は表示する方法はあります。セルの書式設定→ユーザー定義で m"月"d"日"(aaa) と入力すると…。

ユーザー定義で m"月"d"日"(aaa) と入力すると…。

この aaa がくせ者で、Excel では曜日を表す記号だったりします(参考:Excel のセルの表示形式で [ユーザー定義] に使用できる書式記号について)。ちなみに m は月、d は日をあらわします(日付形式の場合)。これで 1月23日(土) という表記になりました!

1/23(土)という表記になりました!

ちなみに、aaaa と入力すると 1月23日(土曜日) という表記になります。2通りの方法で曜日入り日付表記を作成することができました。

● 条件付き書式で曜日ごとにセルへ色づけ

では、曜日ごとに色をつける処理を条件付き書式で設定します。先ほど使用した WEEKDAY 関数を条件付き書式で設定します。条件付き書式→書式ルールの編集で、「数式を使用して、書式設定するセルを決定」で下記の関数を入力します。
土曜日の場合:=WEEKDAY(A1)=7 ※「書式」はセルを青に塗りつぶす設定。
日曜日の場合:=WEEKDAY(A1)=1 ※「書式」はセルを赤に塗りつぶす設定。

土曜日の場合。

条件付き書式→ルールの管理→適用先には書式を反映させる範囲を入力します。

これで、セルに曜日によって色をつける設定ができました! 土曜日の場合はセルが に、日曜日の場合はセルが になります。記事の冒頭で紹介した「Excelでガントチャートを作成する」では Excel シートにこの条件付き書式の設定をしてあります。

● 祝日もセルは色をつける

さらに、祝日(2月11日:建国記念の日)も色をつける処理を条件付き書式で設定しています。月が2であり、かつ日が11であるかどうかを確認して TRUE であれば色がつきます。条件付き書式→書式ルールの編集には下記の関数を入力します。
=AND(MONTH(A1)=2,DAY(A1)=11) ※「書式」はセルを赤に塗りつぶす設定。

条件付き書式で土・日・祝日のセルに対して自動的に色を塗り分けることができました。

● 2つのシートを比較する

さて、ここからは条件付き書式の応用編です。Excel の2つのシートを比較するスクリプトを考えてみました。変更前と変更後に同じアドレスの違いのあるセルに 赤く色をつける 仕様となっています。どこかに修正があるのだけれど、見た目では判別しにくい場合に有用です。

Mac 用には AppleScript で、Windows 用にも VBA で同じ処理を行えるようにしました。変更前と変更後のシートを開き、AppleScript または VBA を実行すると新しいブックが作成されて、2つのシートを比較した結果が作成されます(元のシートにはなにも影響はありません)。

このスクリプトはタクトシステムのHPでお試し版を配布していますので、よろしかったらぜひダウンロードしてください。

-HAKADORI, その他
-,