当サイトはアフィリエイト広告を利用しています。
カレンダーや予定表は、土日祝日に色が付いていると、いつが休日でいつが平日なのかパッと見でわかるので使いやすいですよね。
そこで今回は、Excelで土日祝日のセルに自動で色付けする方法をご紹介します。色付けは行全体・列全体も可能です。
Excelで土日のセルに自動で色付けする方法
Excelで土日のセルに自動で色付けするには、「条件付き書式」で、土曜日の書式と日曜日の書式を設定します。
まずは土曜日の書式を設定します。色付けしたい範囲全体を選択して「ホーム」タブ⇒「条件付き書式」⇒「新しいルール」をクリックします。
「新しい書式ルール」が表示されたら「数式を使用して、書式設定するセルを決定」を選択⇒入力ボックスに=WEEKDAY($A2)=7
と入力⇒「書式」をクリックします。なお、A2の部分には最初の日付セル(例ではyyyy/m/dの形式で入力し、dの形式で表示)を指定します。
WEEKDAY関数(ウィークデイ関数)は、日付に対応する曜日を返す関数です。
WEEKDAY(シリアル値, [種類])
- シリアル値(必須)
- 曜日を求めたい日付を指定する。
- 種類(省略可)
- 日付に対応する曜日をどの数字で表すか以下のいずれかで指定する。省略すると「1」として処理される。
- 1:1(日)~7(土)
- 2:1(月)~7(日)
- 3:0(月)~6(日)
「セルの書式設定」が表示されたら「塗りつぶし」タブを開き、土曜日の色を選択して「OK」をクリックします。
「新しい書式ルール」に戻ったら「OK」をクリックします。
これで土曜日の行全体が設定した色で塗りつぶされます。
条件付き書式の設定で入力した=WEEKDAY($A2)=7
という数式の「7」が「土曜日」という意味なので、日曜日の書式を設定するときは数式を=WEEKDAY($A2)=1
にします。「1」が「日曜日」という意味です。
同様の手順で日曜日の書式を設定すると、日曜日の行全体が設定した色で塗りつぶされます。
Excelで祝日のセルに自動で色付けする方法
Excelで祝日のセルに自動で色付けする方法には、以下のようなものがあります。
- ExcelAPIを使う
- 祝日リストを作成する
方法1:ExcelAPIを使う
1つ目は、ExcelAPIを使う方法です。
ExcelAPIとは、「WEBSERVICE関数」を使ってさまざまなデータをExcelに取り込むためのデータを提供しているサイトです。
- 住所から郵便番号を取得する
- 郵便番号から住所を取得する
- 住所を都道府県、市区町村、町丁目、番地・建物名に分割する
- 祝日の一覧を取得する
- 祝日の名称を取得する
- 祝日の有無を判定する など
ExcelAPIは無料プランと有料プランがあり、無料で利用する場合は機能制限と、1日1万件までというアクセス制限があります。上記の機能についてはすべて無料で利用できます。
ExcelAPIについて、詳細は公式サイトをご確認ください。
それでは、ExcelAPIを使って祝日のセルに自動で色付けする方法を、日付セルが「1列に並んでいる場合」と「複数行に分かれている場合」の2つに分けてご紹介します。
日付セルが1列に並んでいる場合
日付セルが1列に並んでいる場合は、土日に色付けする方法と同様に条件付き書式を設定し、数式だけ=WEBSERVICE("http://api.excelapi.org/datetime/isholiday?date="&$A2)="1"
とします。なお、A2の部分には最初の日付セル(例ではyyyy/m/dの形式で入力し、dの形式で表示)を指定します。
WEBSERVICE関数(ウェブサービス関数)は、Webサービスからデータを返す関数です。
WEBSERVICE(URL)
- URL(必須)
- 呼び出すWebサービスのURLを指定する。
これで祝日の行全体が設定した色で塗りつぶされます。
日付セルが複数行に分かれている場合
上の画像のように、日付セルが複数行に分かれている場合は、条件付き書式の数式を=WEBSERVICE("http://api.excelapi.org/datetime/isholiday?date="&A3)="1"
とします。なお、A3の部分には最初の日付セル(表示方法の詳細はこちら)を指定します。日付セルの先頭に「$」が付かないところが、さきほどと違うところです。
これで祝日のセルが設定した色で塗りつぶされます。
方法2:祝日リストを作成する
2つ目は、祝日リストを作成する方法です。
まずは以下のように「祝日リスト」というシートを作成し、そのシートに祝日の日付(yyyy/m/dの形式)や名称などをまとめます。ここではA列とB列にまとめています。
ここから先の手順は、日付セルが「1列に並んでいる場合」と「複数行に分かれている場合」で異なります。
日付セルが1列に並んでいる場合
日付セルが1列に並んでいる場合は、土日に色付けする方法と同様に条件付き書式を設定し、数式だけ=COUNTIF(祝日リスト!$A:$B,$A2)
とします。なお、A2の部分には最初の日付セル(例ではyyyy/m/dの形式で入力し、dの形式で表示)を指定します。
COUNTIF関数(カウントイフ関数)とは、単一の条件に一致するセルの個数を求める関数です。
COUNTIF(範囲, 検索条件)
- 範囲(必須)
- 検索する範囲を指定する。
- 検索条件(必須)
- 検索する条件を指定する。
これで祝日の行全体が設定した色で塗りつぶされます。
日付セルが複数行に分かれている場合
日付セルが複数行に分かれている場合は、条件付き書式の数式を=COUNTIF(祝日リスト!$A:$B,A3)>=1
とします。なお、A3の部分には最初の日付セル(表示方法の詳細はこちら)を指定します。
これで祝日のセルが設定した色で塗りつぶされます。
Excelの条件付き書式で列全体に色付けする方法
Excelの条件付き書式で列全体に色付けするには、書式ルールの設定の際に入力する数式内で、基準とするセルの「行」を絶対参照にします。
たとえば、=WEEKDAY(B2)=7
のような数式を使う場合は、=WEEKDAY(B$2)=7
のように、行番号の前に「$」を付けます。
これで土曜日の列全体が設定した色で塗りつぶされます。
mono
行全体を色付けたいときは「列」を、列全体を色付けたいときは「行」を絶対参照にすれば良いということですね。
まとめ
今回は、Excelで土日祝日のセルに自動で色付けする方法をご紹介しました。
Excelで土日祝日のセルに自動で色付けするには、条件付き書式を使います。土日の場合は曜日を条件にすることで、祝日の場合はExcelAPIや祝日リストを使って祝日の有無を判定することで色付けすることができますよ。
Excelでカレンダーを作成したい方には以下の記事もおすすめです。
Udemyでは、買い切りの動画講座で好きな分野について自分のペースで学ぶことができます。
パソコンだけでなくスマホにも対応しているので、移動時間や休憩時間にスマホで学習することも可能です。
30日間の返金保証付きなので、初めてでも安心して受講できますよ。
▼ おすすめのExcel VBA講座はこちら ▼