- ベストアンサー
Excelでタイムシートを作成し、曜日に応じてセルに自動で色をつける方法
- Excelでタイムシートを作成する際、曜日に応じてセルに自動で色をつける方法を知りたいです。条件付き書式では実現できないため、マクロを使用する必要があります。
- 具体的な方法として、B6からB36のセルに曜日(Monday〜Friday)の文字が入っている場合、対応するC6からK6のセルに色をつけるようにします。
- 同様に、C7からK7、C8からK8、C9からK9...と続けていき、最後のC36からK36のセルまで、条件に当てはまる場合にセルに色をつけます。SaturdayとSundayの場合は色をつけないようにします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2です! もう一つの質問について・・・ 月・水・金曜日のみに色を付けたいということですが、 「前回の土・日曜日以外に色を付ける」は無視して良いわけですよね? そうしないと二つの条件が重複してしまいますので、当方使用のExcel2003以前のバージョンでは 「条件1」の方が優先されてしまいます。 (Excel2007以降のバージョンでは条件付書式の上側の条件が優先されます) 月・水・金曜日すべてが同じ色で良いのであれば前回同様にC6~K36セルを範囲指定し 条件付書式の数式欄に =MOD(WEEKDAY($A6),2)=0 として好みの色を選択してみてください。 もし三つの曜日の色を変えたい場合はそれぞれ一つの曜日ごとに条件付書式の設定が必要になります。 仮に月曜日の色設定の数式欄は =WEEKDAY($A6)=2 として好みの色を → 次に 水曜日の場合は 「2」を「4」にといった具合に各曜日ごとの設定が必要になります。 今回は仮に曜日ごとに色を変えたい場合でも3つまでの条件付書式の設定なのでExcel2003以前のバージョンでも対応できますが それ以上の条件付書式の設定を行いたい場合はVBAになってしまいます。 (Excel2007以降のバージョンではかなりの設定が可能だということです) この程度でよろしいでしょうか?m(__)m
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 当方使用のExcel2003での一例です。 A列にはシリアル値が入っているようですので、それを利用してはどうでしょうか? C6~K36セルを範囲指定 → 条件付書式 → 数式が → 数式欄に =AND(WEEKDAY($A6)<>1,WEEKDAY($A6)<>7) として → 書式 → パターン → 好みの色を選択 これで土日以外に色が付くと思います。 尚、Excel2007以降のバージョンですと 条件付書式 → ルールの種類 → 数式を使用して・・・ を選択し 数式欄に上記と同様の数式を入れればOKだと思います。 参考になれば良いのですが・・・m(__)m
お礼
tom04さん お礼が遅くなりまして、大変申し訳ありません。 これです!これが欲しかったんです。 まさかweekday関数と条件付き書式で実現できるとは思っていませんでした。 もうひとつ、お聞きしたいのですが、 上記のような方法で、月曜、水曜、金曜だけに色をつけることはできますか?
- Cupper-2
- ベストアンサー率29% (1342/4565)
WEEKDAY関数は試しましたか? =WEEKDAY(シリアル値,2)>5 土日はこの式で TURE を返します。 月曜日=1 火曜日=2 : 土曜日=6 日曜日=7 シリアル値は、日付を示す文字列でもOK。 例: "2011年6月1日" 普通に日付を示しているセルを参照すると楽です。 (質問の件では日にちを表示しているセルが良いでしょう)
お礼
お返事遅くなり申し訳ありません。 回答頂きありがとうございました。 WEEKDAY関数で実現できるとは不覚でした.... 実はNo.2の方の説明が分かりやすかったので、 そちらを使ってみることにしました。 実際に使ってみて、不都合があったら、Cupper-2さんの方法も使ってみたいと思います。 また何か分からないことがあったときに助けてください。 ありがとうございました。
お礼
キタ━━━━━━(゜∀゜)━━━━━━ !!!!! tom04さん ありがとうございます! これです!もう何も言うことはありません。 先日教えて頂いたものと、今回のものを両方作って どちらが良いか上司に判断してもらいます。 (これで”エクセルができる人”と思わると怖いですね(笑) 教えてGooのヘビーユーザーです!なんて言えないですね~(^-^;)(笑)) 追加の質問にも本当に分かりやすく、丁寧に説明頂いたので 心の底から感謝しています。 また、機会があれば助けてください。 m(_ _)m