[[20060824172052]] 『値が重複したとき指定したセルの書式を変更』(けん) >>BOT

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

 

『値が重複したとき指定したセルの書式を変更』(けん)

[セルの値が重複したときに指定したセルの書式を変えるのは?]

Sheet1のC列にあるデーターとSheet3のB列のデーターを比較して、
重複したデーターが有る時に、指定したセルの書式を変えたいのですが、
どうしても出来ません。
例えば、Sheet1のC3の値がSheet3のB列に含まれた時に、Sheet1のE3,F3,G3のセルの書式を変えたいのですけど。


 下記ではどうでしょうか。(夕焼)
  書式変更はサンプル例です。

 Sub TEST()

 lastrow32 = Worksheets(3).Cells(Rows.Count, 2).End(xlUp).Row

 For i = 1 To lastrow32

 If Worksheets(1).Cells(3, 3) = Worksheets(3).Cells(i, 2) Then

 Worksheets(1).Cells(3, 5).Interior.ColorIndex = 3         '''書式変更例(セル色変更)
 Worksheets(1).Cells(3, 6).Font.Size = 14                '''''書式変更例(文字サイズ変更)
  Worksheets(1).Cells(3, 7).HorizontalAlignment = xlCenter '''書式変更例(文字配置位置変更)

  Exit For
  End If
 Next

 End Sub

良く読んだら,上は,ちがうようですので

 C3だけでなく,C列に沢山あって,全てチェックするように
 変更しました。

Sub TEST2()

lastrow13 = Worksheets(1).Cells(Rows.Count, 3).End(xlUp).Row

For ii = 1 To lastrow13

lastrow32 = Worksheets(3).Cells(Rows.Count, 2).End(xlUp).Row

For i = 1 To lastrow32

 If Worksheets(1).Cells(ii, 3) = Worksheets(3).Cells(i, 2) Then

 Worksheets(1).Cells(ii, 5).Interior.ColorIndex = 3         '''書式変更例(セル色変更)
 Worksheets(1).Cells(ii, 6).Font.Size = 14                '''''書式変更例(文字サイズ変更)
  Worksheets(1).Cells(ii, 7).HorizontalAlignment = xlCenter '''書式変更例(文字配置位置変更)

  Exit For
  End If
 Next

 Next

End Sub


 条件付き書式の数式の中で直接!を含むセル参照を使用しますと、無効となるようです。
 Sheet3!$B$1:$B$30の部分をINDIRECT("Sheet3!$B$1:$B$30")とするか、名前を利用して、
 下のようにしますと、条件設定に成功するように思います。

 Sheet1のE3を選択しG3まで範囲を拡大し、挿入、名前、定義として、
 名前にCHK、参照範囲に=COUNTIF(Sheet3!$B$1:$B$30,Sheet1!$C3)と登録し、
 そのまま、書式、条件付書式、条件1に数式が、その右の箱に=CHKと指定します。  (LOOKUP)
 こちらもご覧下さい。↓
[[20050725110942]] 『在庫場所の空〜塗りつぶし〜』(初心者18)

ご教授、ありがとうございます。じゃあ、列Cに乱数があって、列Cの値とシート3の列Bの値が一致し、
なおかつシート3に列Aから数値の値とシート1の列Dから列Fの数値の値と一致した時に一致したセルのみの書式を変える事はできるのでしょうか?

シート1

AAA   000    601    0    0   12A 

BBB   800    303    0    0   12A 

CCC   200    296   10A  11B   12C 

DDD   000    363    0    0   11A 

EEE   100    331    0    11A  12B 

FFF   300    461    0    10A  12A 

GGG   140    141    0    0   11A 

HHH   600    526    0    0   11A 

シート3 

AA-10B  601

AA-10B  281

AA-12B  303

AA-12B  551

AA-12B  296

AA-10B  291

AA-10B  332

AA-10B  606

AA-10B  296

AA-10B  301

AA-10B  377

AA-11B  141

AA-11B  331

AA-11B  341

AA-12B  331

AA-11B  400

AA-11B  141

 


 まず、当初のご質問は、解決されたのでしょうか?    (LOOKUP)

LOOKUPさん、ありがとうございます。
最初の質問ですが、一応、セルの書式を変えることが出来たのですが、
不必要なセルまで変わってしまったので、もうひとつのデーターを参照して、共に一致した時だけ変える様にしたいのですが。

 >不必要なセルまで変わってしまったので
 とは、なんでしょう? ご質問には、対応しているつもりなのですが。。
 また、今回のご質問では、書式を変更する個所は、どこなのでしょう?  (LOOKUP)


 けんさん 
 マクロを使った方法を示してありますが、そちらは確認できましたでしょうか。(夕焼)


みなさん、せっかく教えていただいているのにこちらの説明不足ですいません。
夕焼さんのマクロで試してみましたが思ったようにできませんでした。例えば、シート1のCCCの行にC3セルより296   10A  11B   12C  とありますが、シート3の中でA列の中に含まれている数字2桁と隣のB列のセルの数値が一致した時にシート1のD列からF列の中で一致したセルの書式を変えたいのです。シート1にCCCの列 296   10A  11B   12C とシート3を比較した場合、AA-12B  296とAA-10B  296
は10と296の一致、12と296の一致が有りますが、11と296の一致するセルは無いので、シート1のCCCの行の10Aと12Cの書式が変えれるのでしょうか?


私のマクロは,最初の要求に対するものです。後で,内容が変更(追加)された
ことには対応していません。
  まずは,最初の内容が実現できてからの,次のステップだと思います。
最初の要求にたいしてはどうなのでしょうか。最初の要求はキャンセルなので
しょうか。(夕焼)

 ご希望のむきが、よく理解できませんので、想像で試作しました。

 Sheet1のD1を選択し、範囲をF8まで拡大し、挿入、名前、定義で、名前をCHK2、
 参照範囲を =SUMPRODUCT(($C1=Sheet3!$B$1:$B$17)*(LEFT(D1,2)=MID(Sheet3!$A$1:$A$17,4,2)))
 と登録します。
 書式、条件付書式で、条件1に数式がとして、その右に=CHK2として、書式を登録しますと、
 このようにできます。*が書式が実現しています。              (LOOKUP)

 ==Sheet1==
 	A	B	C	D	E	F
 1	AAA	  0	601	0	0	12A
 2	BBB	800	303	0	0	*12A
 3	CCC	200	296	*10A	11B	*12C
 4	DDD	  0	363	0	0	11A
 5	EEE	100	331	0	*11A	*12B
 6	FFF	300	461	0	10A	12A
 7	GGG	140	141	0	0	*11A
 8	HHH	600	526	0	0	11A

 ==Sheet3==
 	A	B
 1	AA-10B	601
 2	AA-10B	281
 3	AA-12B	303
 4	AA-12B	551
 5	AA-12B	296
 6	AA-10B	291
 7	AA-10B	332
 8	AA-10B	606
 9	AA-10B	296
10	AA-10B	301
11	AA-10B	377
12	AA-11B	141
13	AA-11B	331
14	AA-11B	341
15	AA-12B	331
16	AA-11B	400
17	AA-11B	141


親切、丁寧に指導をして頂きまして有難うございました。LOOKUP様の回答が非常に参考になりました。これで、希望のデーターが完成出来ました。

コメント返信:

[ 一覧(最新更新順) ]


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