[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件付き書式を10段階設定したい』(かわさき)
0-100までの数値を0-10、11-20・・・と10づつに分けて、それぞれの値に応じてセルの色を変えたいのです。
条件付き書式では三つが限界ですので、困っています。
関数ではできない、らしいのですが、マクロならどうなのでしょうか?
それともエクセルでは無理なのでしょうか?
全文検索で探して見て下さい(dack)
↓を、ご参考にしてみて下さい
(10)Color関数 http://www.excel.studio-kazu.jp/DL/
(Ohagi)
例えば、このようなコードをシートモジュールに貼り付けます。 Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range, a As Range, clr As Integer On Error Resume Next Set rng = Intersect(Target, Range("A1:A10")) If rng Is Nothing Then Exit Sub On Error GoTo 0 For Each a In rng Select Case a.Value Case 1 To 10: clr = 3 Case 11 To 20: clr = 4 Case 21 To 30: clr = 5 Case 31 To 40: clr = 6 Case 41 To 50: clr = 7 Case 51 To 60: clr = 8 Case 61 To 70: clr = 9 Case 71 To 80: clr = 10 Case 81 To 90: clr = 22 Case 91 To 100: clr = 23 Case Else: clr = xlNone End Select a.Interior.ColorIndex = clr Next End Sub この場合、条件付書式もどきが設定されている範囲はA1:A10となります。 色は適当なので、お好きなもののColorIndexを入れてください。 ColorIndex一覧は、↓のコードで確認できます。 標準モジュールに貼り付けて、まっさらなシートをアクティブにしてから実行して下さい。 Sub Sample() Dim i As Long For i = 0 To 56 With Range("A" & i + 1) .Value = i .Offset(, 1).Interior.ColorIndex = i End With Next End Sub (ROUGE)
こんなのも...
Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range If Intersect(Target,Range("a1:a10")) Is Nothing Then Exit Sub For Each r In Intersect(Target,Range("a1:a10")) If r.Value > 0 And r.Value <= 100 Then r.Interior.ColorIndex = _ Choose(WorksheetFunction.RoundUp(r.Value/10,0),3,4,5,6,7,8,9,10,11,12) Else r.Interior.ColorIndex = xlNone End If Next End Sub (seiya)
横から質問ですが?
For Each r In Intersect(Target,Range("a1:a10"))が
解りません。for each r in のところです (ちょいボケ親父)
for each r in range("a1:a10) はわかりますか? (seiya)
いえ、正直解りませんのと、 >If Intersect(Target,Range("a1:a10")) Is Nothing Then Exit Sub これは、ターゲットとa1:a10の範囲が違っていたら抜けます。。。 でいいんでしょうか? ヘルプではシート内の共有セル範囲となっているので 試しに"a10"を"f10"に変えてみたりして、感じは解ったのですが?
どの部分がわからないのでしょう?
For Each r In Intersect(Target, Range("a1:a10"))
Intersect(Target, Range("a1:a10")) Targetが複数セルの場合も想定して考えているので、 たとえば、A1:B5 を選択した場合は、A1:A5(A1:B5 と A:A10の共通範囲)を対象にして 範囲内をループさせています。 (seiya)
(seiya)さんへ 意味が解りました、Intersect(Target, Range("a1:a10"))を Intersect(Target, Range("a1:f10"))にした時その範囲から外は 色が変わらなっかたのはそうゆう事なんですね。 for each in は赤色になっているのは決まりごとですか? 勉強している本に載ってないもので教えて下さい(ちょいボケ親父)
追記 解りました。指定することですね(ちょいボケ親父)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.