プロが教える店舗&オフィスのセキュリティ対策術

初めて投稿します。どうぞよろしくお願いします。

エクセルの条件付き書式では4通りにしか設定できないため、マクロ初心者ではありますが、こちらでの回答を参考に作ってみました。

0~0.999 薄ピンク
1~1.999 ピンク
2~2.999 赤
3~3.999 オレンジ
  ↓
  ↓
25~25.999 濃い紫

と26パターンに自動的に塗りつぶすマクロを作りました。
ところが空白のセルも0~0.999で指定している薄ピンクに塗りつぶされてしまいます。
何分初心者なもので、どこを修正したら良いのかわかりません。
どなたかアドバイス頂けると助かります。
よろしくお願いします。

Sub color0_25()

Dim Target As Range
For Each Target In Range("A1:Z1000")
Select Case Target.Value

Case Is < 0
Target.Interior.ColorIndex = 0
Case Is < 1
Target.Interior.ColorIndex = 38
Case Is < 2
Target.Interior.ColorIndex = 7
Case Is < 3
Target.Interior.ColorIndex = 22
Case Is < 4
Target.Interior.ColorIndex = 3
Case Is < 5
Target.Interior.ColorIndex = 46
Case Is < 6
Target.Interior.ColorIndex = 45
Case Is < 7
Target.Interior.ColorIndex = 44
Case Is < 8
Target.Interior.ColorIndex = 6
Case Is < 9
Target.Interior.ColorIndex = 36
Case Is < 10
Target.Interior.ColorIndex = 35
Case Is < 11
Target.Interior.ColorIndex = 4
Case Is < 12
Target.Interior.ColorIndex = 50
Case Is < 13
Target.Interior.ColorIndex = 14
Case Is < 14
Target.Interior.ColorIndex = 34
Case Is < 15
Target.Interior.ColorIndex = 37
Case Is < 16
Target.Interior.ColorIndex = 33
Case Is < 17
Target.Interior.ColorIndex = 28
Case Is < 18
Target.Interior.ColorIndex = 41
Case Is < 19
Target.Interior.ColorIndex = 5
Case Is < 20
Target.Interior.ColorIndex = 11
Case Is < 21
Target.Interior.ColorIndex = 55
Case Is < 22
Target.Interior.ColorIndex = 17
Case Is < 23
Target.Interior.ColorIndex = 39
Case Is < 24
Target.Interior.ColorIndex = 54
Case Is < 25
Target.Interior.ColorIndex = 13
Case Is < 26
Target.Interior.ColorIndex = 21

End Select
Next

End Sub

A 回答 (3件)

select caseに入る前に if Target.Value="" then で、一番後ろまで


ジャンプさせてしまえばいいかと。

この回答への補足

さっそくの回答ありがとうございます!
こんなに早くお返事がきて嬉しいです。

Dim Target As Range
For Each Target In Range("A1:Z1000")
If Target.Value = "" Then
Select Case Target.Value

と入力するということですよね?
コンパイルエラーが出てしまって
「Next に対応する For がありません」と。

End Select
End if
Next

End Sub

としてみたら、動きますがさっきと変わりませんでした・・。
何を追加したらよいのでしょうか?
度々すみませんが、よかったらご回答ください。

補足日時:2007/03/12 16:37
    • good
    • 0

Case Is = ""  '→ 追加


Target.Interior.ColorIndex = 0 '→ 追加
Case Is < 0
Target.Interior.ColorIndex = 0

ではダメですか?

この回答への補足

回答ありがとうございます!

希望通りの塗りつぶしができました!!
どうもありがとうございます。

これで作業がとっても楽になります。
本当にありがとうございました。

補足日時:2007/03/12 16:51
    • good
    • 0

こんにちは



Case Is < 0



Case Is <= 0

としてみては?

0を入れたときは塗りつぶしができませんが・・・

または

Case Is = ""
Target.Interior.ColorIndex = 0

を最初に付け加えるとか・・・

この回答への補足

回答ありがとうございます!

0の時も塗りつぶしにならなければいけないので
Case Is = ""
Target.Interior.ColorIndex = 0
を試してみました。

思い通りの塗りつぶしになりました!!
""は、エクセルの時はよく使うのに、マクロだと意気込むと思い浮かびませんでした(汗)

これからも参考にさせていただきます。
ありがとうございました!

補足日時:2007/03/12 16:55
    • good
    • 0

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