• ベストアンサー

エクセル:複数条件でセルの行を塗りつぶすには

エクセルにて下記のような表を作成しております。 商品名  商品コード   単価 ●●   DA0000     1000 ★★   DP0000     2000 ○○   CA0000     1000 ◆◆   HA0000     1000 こんな感じなのですが、商品数としては100程度あります 商品番号の頭にDがつくものに薄い黄色、Cがつくものに水色といった感じで、商品の種類ごと、入力されている行全体の色をかえていきたいのですが、なにか良い方法はないでしょうか?

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

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

色インデックスがどういう色かは、下記を実行してみて、どれが良いか考えて、(パターンの場合下の文字を見えにくくしないこと) 商品番号の頭の記号と色番号の対応表を作ってください。 A-3、B-4,C-6、D-7、E-8、F-17、G-33、H-19、I-20、 J-22に仮にするとします Sub TEST01() For i = 1 To 56 Cells(i, "A") = i Cells(i, "B").Interior.ColorIndex = i Next i End Sub 上記でシートのセルに番号と色が出ます。 ーーーーーーーーーーー 上記とは別シートにコマンドボタンを1つ貼り付け、ボタンをダブルクリックすると Private Sub CommandButton1_Click() End Sub が出ますから、その中間に下記を入れて、最終 Private Sub CommandButton1_Click() c = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J") ci = Array(3, 4, 6, 7, 8, 17, 33, 19, 20, 22) d = Range("A65536").End(xlUp).Row For i = 1 To d For j = 0 To UBound(ci) If Mid(Cells(i, "A"), 1, 1) = c(j) Then Range(Cells(i, "A"), Cells(i, "J")).Interior.ColorIndex = ci(j) End If Next j Next i End Sub のようにして、ボタンの編集状態を脱し、シートのコマンドボタンをクリックすると、A-J列に記号に応じてパターン色が付きます。 A列のデータを変えたり、A列の商品を追加したりした都度、ボタンをクリックしてください。 やってみたが、見た目けばけばしくて、私個人では使いたくない感じ になりましたが。

noname#25520
質問者

お礼

ありがとうございます! 望んでいた結果がでました。 私も正直、ちょっとみにくいのではないかなと思っているのですが 上司がそのようにしてくださいとのことでしたので・・・^^; とてもわかりやすく大変参考になりました。 ありがとうございました。 このようなことを勉強するには、本を買って独学が良いのでしょうか・・・imogasiさんのように私も誰かに聞かれたらさっと答えら得るようになりたいです。

その他の回答 (3)

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

この質問には、書式ー条件付き書式のことが、ちっとも書いて無いので、知らないのでしょうか。3色(色付けなしを含め、4種)の制限は、(OKWAVEでもよく質問があり)有名なことです。 商品番号の頭の記号の種類が4種以上の場合は、要望に応えられません。 VBAで色インデックス(色パレット)で56種までですが、人間が区別 できそうなのは10種ぐらいまでのような気がします。 RGB指定などすれば、膨大な色がコードでは区別できますが、人間には 差の識別としては役立ちません。識別の助けに色を使うのは、理屈倒れのような気がします。 それとVBAは表のデータが増えたとき、商品コードが変更されたとき、即座に反映する仕組みはありますが、不安定だし、それなりのVBAに なれた方で無いと、ビジネスの実用に耐えるプラグラムを作れないでしょう。

noname#25520
質問者

補足

回答ありがとうございます 厳しい回答をいただきましたね^^; ここに質問する前に検索などで捜してみましたところ、条件付書式について見つかったのですが、色分けは10種類くらいに分類したいのです。 条件付書式では3種とありましたので、今回新たに質問させていただきました。 経由を書かず申し訳ございません。

回答No.2

色数が3個まででしたら、条件付書式が使えます。 「書式」「条件付書式」で、左端の「セルの値が」を「数式が」に変えます。 =left($b1,1)="D" でパターン色を“色1” 条件の追加で、 =left($b1,1)="C" でパターン色を“色2” 色数が4個以上でしたら、VBAでしょうね。詳しい方からの回答があると思います。

noname#25520
質問者

お礼

丁寧に教えてくださりありがとうございます。 申し訳ありません、実は10種くらいの色分けをしたいのです。

  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.1

塗りつぶす行の色が3色までなら、条件付書式でできますね。 それ以上になるなら、VBAで色を変えましょう。

noname#25520
質問者

補足

回答ありがとうございます。 大変申し訳ありません、10種類くらいにわけたいのです。 せっかく教えていただいたのにごめんなさい。

関連するQ&A