電子書籍の厳選無料作品が豊富!

Sheet1のA列に個人番号、B列に氏名が入っています。C列からG列までに1から50までの整数が入っている表があります。1行目がタイトル行で、2行目以下にデータが入っています。

ただ条件があって、例えば、ある人のC列からG列までのどこかに1が入っている場合は、13, 27, 41がその他の列に入っている場合、エラーとしてわかる(該当セルに色を塗る)ようにしたいのですが、どうしたらいいでしょうか?

実際は上記のような条件がいくつもあるのでVBAを用いてするしかないと思うのですが、やり方が思いつきません。If ~ thenでひとつひとつチェックする以外に効率的な方法があれば教えてください。

Excel2007を使っています。

A 回答 (11件中11~11件)

確かにVBAをシートに登録すれば入力都度に自動チェックがかけられてスマートですけど、作業セルなり使って判断させて、条件付きセル書式を設定するなんて泥臭い方法もなくはない。



該当セルだけ塗るなら、まず13, 27, 41と一致するかを判断させて色塗り。更にその行の範囲に1があるかを判断して、1が無ければ行全体をキャンセル色で塗る(白など背景色で塗る)って方が早いですね。
確か2007は条件付き書式に条件を4つ以上設定できたはず。
範囲に1を含むかどうかを見るには、数式で
=IF(COUNTIF(C2:G2,1)>0,1,0)
というように条件にすれば良い。

VBAの方を知りたければ
プログラミング > Visual Basic カテで質問されると良いかと。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

確かに条件が例にあげた1つだと条件付き書式でなんとかなると思うのですが、他にも条件があるのです。例えば、同様にある人のC列からG列まで2が入力されている場合は、その他のセルには7,19,47はエラーなどなどです。

もう少し様子を見て、VBAでの回答がつかないようでしたら、ここをしめてプログラミング > Visual Basic で質問しなしてみます。

お礼日時:2012/11/08 12:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!