• ベストアンサー

4つ以上の条件付き書式

いつも何かとお世話になっています。<m(__)m> Excel2002で、下記のような条件でセルを塗りつぶしたいのです。 セルの値がゼロなら、薄い黄色で塗りつぶし。 1~10なら青色。 11~20ならピンク。 21~30なら黄色。 90ならグレー。 98ならうすい青。 何とか条件付き書式で出来ないものかと考えたのですが、分かりませんでした...。 マクロとかになるのでしょうか?? 何でもいいので、教えてください。よろしくお願いします。

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

  • ベストアンサー
  • macchan1
  • ベストアンサー率38% (52/136)
回答No.5

返答がきていたことに気が付きませんでした。 すべての投稿をチェックするのは大変なような気がするのですが、このサイトでは新しく投稿された場合にはどこかにマークのようなものが出るのでしょうか? さて本論ですが、「既に出来上がっているシートの塗りつぶし作業」の場合は以下のマクロを標準モジュールに貼り付けて実行してみてください(以前のマクロコードとの違いに注目してください)。  なお、対象範囲はA1:Z1000にしてみました。範囲を広げたい場合は適当にコードを修正してください。 標準モジュールに貼り付け方は、Alt+F11でVBEを起動し「挿入」「標準モジュール」で空白シートに以下のコードを貼り付けてください。 Sub sample() Dim Target As Range For Each Target In Range("A1:Z1000") Select Case Target.Value Case Is < 1 Target.Interior.ColorIndex = 0 Case Is < 10 Target.Interior.ColorIndex = 5 Case Is < 20 Target.Interior.ColorIndex = 7 Case Is < 30 Target.Interior.ColorIndex = 6 Case 90 Target.Interior.ColorIndex = 15 Case 98 Target.Interior.ColorIndex = 8 End Select Next End Sub

mag-chan
質問者

お礼

macchan1様、 何度も何度もありがとうございます。m(__)m イメージしていた通りになりました~! なんとお礼申し上げてよいのやら... 本当にありがとうございました☆ 追伸:投稿がUpされた場合、何らかの表示が出たらいいなぁって私も思います...(笑)

その他の回答 (5)

  • yuu_yuu
  • ベストアンサー率41% (34/81)
回答No.6

質問者さん ごめんなさい。 #5さんへのアドバイスです。 >すべての投稿をチェックするのは大変なような気がするのですが、このサイトでは新しく投稿された場合にはどこかにマークのようなものが出るのでしょうか? 締め切られない限り、回答に対する返事があるかはというマークのようなものは付きません。 締め切られても、良回答だったかの見分けはつきますが 返答があるかまでは分かりませんねぇ。。。 回答をする時に、「新しい回答が登録されたらメールで知らせてほしい」に チェックを入れ回答し、メールを確認するのが確実と思います。 ちなみに、「マイページ」で確認すれば、さほど大変な作業では無いのでは?? 以上です

mag-chan
質問者

お礼

yuu_yuu様、こんにちは。 約1日ぶりに自分の投稿を見てみたら、なんだか変わった回答があって、ビックリ… というか、ちょっと笑ってしまいました。(笑) でもこんな風に、色々なメッセージが残されるのって、楽しいかも♪ とまぁ、意味のないお礼を投稿してしまいました。(^^ゞ

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.4

>エクセルの画面に戻って、メニューバーのツールからマクロ を実行...しようとしたら、マクロが表示されません。 今回のマクロはイベントマクロといってマクロを登録したシートだけで自動的に動くようになっているものです。 したがって、そのシート上で数字を入力(変更)すると、何もしないでもマクロが自動的作動して希望の色がつけられます。 もし入力する範囲が決まっている(例えばB列以外は色をつけたくない)場合はその条件をコードに付加することができます。

mag-chan
質問者

お礼

な、なるほど... そうだったんですね。無知ですみません。(^^ゞ 実は今回のシート、ピボットテーブルで既に出来上がっているシートの塗りつぶし作業だったもので...。 そういう場合はどうすればいいんでしょう?? って、度々スミマセン <m(__)m>

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.3

補足します。 もし色が希望のものと違うあるいは他の色に変更したい場合は、VBE(Alt+F11またはコードの表示で起動します)のヘルプで、「ColorIndex プロパティ」で色の一覧が表示されますので、それをみてコードを変更して下さい。

mag-chan
質問者

お礼

macchan1様、 度々のご回答、ありがとうございます。 実は今試してみたのですが、うまくいきません...(>_<) 貼り付けた後、メニューバーのツールからマクロを実行しようとしたのですが、 貼り付けたはずのマクロが表示されず、どうやって実行すればいいのかが分からず...。 以下、私が貼り付けた手順です。操作方法が間違ってますでしょうか? シート名を右クリック → 「コードの表示」 → コードを貼り付けてVBAの画面を閉じる エクセルの画面に戻って、メニューバーのツールからマクロ を実行...しようとしたら、マクロが表示されません。 何から何まで頼ってしまって申し訳ないですが、よろしくご指導ください。m(__)m

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.2

10は青、20はピンク、30は黄色ですので以下のように訂正してください。 Case Is <= 10 Target.Interior.ColorIndex = 5 Case Is <= 20 Target.Interior.ColorIndex = 7 Case Is <= 30 Target.Interior.ColorIndex = 6

mag-chan
質問者

お礼

macchan1様、 とっても早いご回答、ありがとうございます。 しかもマクロまで書いて頂いて... 早速試してみます。 本当にありがとうございました!

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.1

条件付書式では基本的に3色までしか設定できません。 この場合はマクロを使用します。 シート名の部分を右クリックして「コードの表示」で以下qのマクロを貼り付けてみてください。 Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Value Case Is < 1 Target.Interior.ColorIndex = 0 Case Is < 10 Target.Interior.ColorIndex = 5 Case Is < 20 Target.Interior.ColorIndex = 7 Case Is < 30 Target.Interior.ColorIndex = 6 Case 90 Target.Interior.ColorIndex = 15 Case 98 Target.Interior.ColorIndex = 8 End Select End Sub

関連するQ&A