[[20091123233517]] 『3つ以上の条件付書式設定』(けん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『3つ以上の条件付書式設定』(けん)

 過去ログで調べましたが参考になるような事例が見つけられませんでしたので、
 この場をお借りして、質問をさせていただきます。

 条件付書式設定では3つまでしか書式の設定を行う事が出来ませんが、10通り以上の
 組み合わせで、 セルの色を変えたいのでマクロで変えるしか無いと思いますが、
 マクロの記述がわかりませんので、例を挙げて質問させていただきます。

    A   B   C   D   E   F   G 〜
 1  あ い う え お か  き
 2 ア イ ウ エ オ カ  ア
 3 ○ △ □ ● ▲ ■  ○

 上記の例で説明をすれば、A2セルがアでA3セルが○の場合はA1,A2,A3セルはセルの色を赤くする。
 また、同様にG2セルとG3セルも同じアと○の組み合わせのため同じ様にG1,G2,G3の色を赤くする。
 B2セルがイでB3セルが△の場合はB1,B2,B3とのセルはセルの色を黄色くする。
 この様にある組み合わせの場合にセルの色を変えられる事は可能でしょうか。
 マクロに関しては初心者ですが。よろしくお願いします。

 全ての着色パターンが提示されていませんので、まずは、ご自身で、
A1:A3の範囲で動作するマクロを作ることが出来るかどうかです。
条件組み合わせパターンと色についてはご自身で決めてください。
 
 Sub test()
     With Range("A1:A3")
         Select Case .Cells(2).Value & .Cells(3).Value
         Case Is = "ア○"
             .Interior.ColorIndex = 3
         Case Is = "イ△"
             .Interior.ColorIndex = 6
         Case Else
             .Interior.ColorIndex = xlNone
         End Select
     End With
 End Sub
 
上記マクロの
         Case Is = "??"
             .Interior.ColorIndex = n
の形の部分は自分で追加して下さい。
できたら、これが雛形となります。
問題は、Range("A1:A3")の部分です。
このような書式変更を適用するセル範囲を具体的に実際の範囲で説明してください。
(みやほりん)(-_∂)b

 説明不足で申し訳有りません。
 書式を変更したいセルは、
 C6〜V8の範囲と、
 C20〜V22の範囲と、
 C34〜V36の範囲があります。
 上記の例で言えば、A1〜G3までの範囲で目的の作業が出来れば、
 応用が出来るかと考えておりました。
 実際のシート上では、C6〜V8とC20〜V22とC34〜V36の範囲で、
 約10通りの組み合わせで一致するデーターが存在します。
 再度、上記の例で説明をしますと、
 A2とA3はアと○の組み合わせなので、A1,A2,A3セルはセルの色を赤くする。
 G2とG3もアと○の組み合わせなので、G1,G2,G3セルはセルの色を赤くする。
 B2とB3はイと△の組み合わせなので、B1,B2,B3セルはセルの色を黄色くする。
 C2とC3はウと□の組み合わせなので、C1,C2,C3セルはセルの色を青くする。
 D2とD3はエと●の組み合わせなので、D1,D2,D3セルはセルの色を緑色にする。
 E2とE3はオと▲の組み合わせなので、E1,E2,E3セルはセルの色を紫色にする。
 F2とF3はカと■の組み合わせなので、F1,F2,F3セルはセルの色を桃色にする。
 といった様に同じデーターの組み合わせのセルを同色に変更出来ればと考えています。
 (けん)

 Sub test20091125()
     Dim rngR As Range
     For Each rngR In Range("C6:V6,C20:V20,C34:V34")
         With rngR.Resize(3, 1)
             Select Case .Cells(2).Value & .Cells(3).Value
             Case Is = "ア○"
                 .Interior.ColorIndex = 3
             Case Is = "イ△"
                 .Interior.ColorIndex = 6
             Case Else
                 .Interior.ColorIndex = xlNone
             End Select
         End With
     Next rngR
 End Sub
 
前のtest()との変更点
Range("C6:V6,C20:V20,C34:V34")は3箇所の範囲のそれぞれの1行目だけを指定し、
その一つ一つをrngRとして繰り返す処理に変更、追加しています。
対象とする範囲をRange("A1:A3")という固定範囲から、
rngR.Resize(3, 1)という変数を利用したものに変更しています。
 
rngRの1行下、2行下をつなげた文字列の判定をSelect Caseで行います。
Case Is = は実際の組み合わせの文字列、
ColorIndexの後の数字は、背景色パターン番号。
それぞれ条件に合ったものを編集、追加して応用してください。
 
(みやほりん)(-_∂)b

 色々と指導して頂きまして、有難う御座います。
 教えていただいた上記コードを試してみました。
 問題なく、希望の作業を行う事が出来ました。
 色番号等の変更は自分で調べて残りの作業は自分で行ってみます。
 また、何かありましたら、よろしくお願いします。
 (けん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.