• ベストアンサー

Excelで土日の列を塗り分けしたい。

縦軸に項目、横方向へ日付が並んだスケジュール表を構想してるのですが、土曜・日曜日の列を判りやすく塗り分けたいと思います。 曜日のセル単体には条件付き書式で設定できましたが、 その列全体を塗りつぶしたい場合はどうすればよいのでしょう? なるべくならマクロでなくワークシート関数で実現したく存じます。 しょうもない質問かもしれませんが、なにとぞ ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.2

同じ条件付書式で出来ませんか? 条件の1を「数式が」にして、=$B$2="日" 条件の2も同様に土曜日の場合を設定することで出来ると思います。

Passerby01
質問者

補足

試しに一列できました♪ さて、一月は31日あるとして、 この条件付き書式の設定は毎列ごとに31回分必用なんですね? ッてことは、土曜、日曜で計62回設定するのですね。 とりあえず今夜はぐっすり寝て明日に備えたいと思います。 ご教授ありがとうございました。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

マクロなら6行で済むのに。マクロはこんなもんだと割りきって使えば良いと思います。関数だって内部で何をやっているか判らないものも多いとおもいます。 Sub test02() For i = 1 To 31 If Cells(1, i) = "土" Then Columns(i).Interior.ColorIndex = 8 End If Next i End Sub ColorIndex = 8はブルーです。1から20ぐらいを試して 気に入ったものを決めてください。 2行目に「土」があるなら、If Cells(2, i) = "土" Then と直してください。

Passerby01
質問者

補足

できれば起動時の「マクロが含まれてます」メッセージの手間を省きたかったのです。 セキュリティ的にすべてのマクロ付きExcelを警告なく開けられるようにするのも問題だし、かといってわざわざマクロにデジタル署名付けて配付するほどでもないし・・・。 自分だけで使わず、他人様にも配付するつもりなので 可能なうちはワークシート関数で対応しようとしております。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

こんにちは。maruru01です。 条件付き書式は、範囲選択をして一度に設定出来ます。 今回の場合は、まずB1を起点に日数分の列と項目分の行(書式を設定したい範囲)を範囲選択します。 (起点にしたセルが反転表示になるようにします。) そうしたら、条件付き書式で、 条件1 「数式が」 「=B$2="土"」 で書式を設定 条件1 「数式が」 「=B$2="日"」 で書式を設定 これで、自動的に範囲に相対参照で入ります。 相対参照の基準は起点のセルになります。 もちろん絶対参照にしたい場合は「$」を付けます。 (今回は行番号) コピーもいらずに一発で出来ます。

Passerby01
質問者

お礼

解かりやすい解説ありがとうございます。 条件1,2相対参照で設定し希望のことが出来ました。

  • fu-raibo-
  • ベストアンサー率31% (41/129)
回答No.4

No2の方への回答に対する補足への回答です。 条件付書式はコピーできます。 ですので 条件の1を「数式が」にして、=B$2="日" 条件の2を「数式が」にして、=B$2="土" にしてそれを必要なだけコピーしてください。 もちろん書式だけコピーです。 Bの前に$をつけないところがミソです。

Passerby01
質問者

お礼

おいしいおミソをありがとうございます。

  • ROJITA
  • ベストアンサー率10% (2/20)
回答No.3

関数を使わないとならないのですか? 単純に、塗りつぶしたい列のアルファベット部分をクリックで、その列全体を選択して、右クリック、「セルの書式設定」⇒「パターン」で色を選択するのではダメなのでしょうか?

  • the845t
  • ベストアンサー率33% (246/743)
回答No.1

最近使っていないので条件の書き方に自信がないですが 列を選択した状態で条件付書式を。 if($A$1 = "日") のように、$を使った絶対参照で可能だと思います。

Passerby01
質問者

補足

ANo.#2さんの方法で一個作れました。 IFは要らないようでした。 迅速な回答ありがとうございます。

関連するQ&A