- 締切済み
違うシートの同じ番号を色付けするマクロ
シート1とシート2のA列それぞれに数字が振ってあります。 ここで、シート2のA列の任意のセルを塗りつぶしたとします。 それがシート1の同じ数字のセルも同じ色で塗りつぶされるマクロを作りたいのですが なかなか作れません。教えていただければ非常に助かります。。 シート1 シート2 A列 A列 2 5←塗りつぶすとシート1の5と入力された数字も塗りつぶされるようにしたい 4 9 5← 6
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
考えるべきこと (1)VBAでセルが塗りつぶされているかどうかの判別は、どういうコードになるか (2)塗りつぶされている場合そのセルの値(x)はどうして掴めるか (3)Sheet1の(A列)セルで、Xのセルを見つけるのはどういうコードになるか (4)見つかったセルのセル色を設定はどういうコードになるか。 こういう風に1歩1歩すべきことを分解して、書き上げて、本やWEB記事で勉強したか。丸投げに近い質問だ。 (1)は色は色々な色で設定されて居るか。この点を書いてないのは、しっかり考えて無い証拠。 その色を設定する条件(ルール)が簡単なら、シート1に対してVBAで同じ条件で設定することも1方法だろう。 (1)は1色なら検索操作の条件で書式条件が使えるかもしれないから、マクロの記録が参考として使えるかも。 (3)(4)はマクロの記録が大いに参考になる。 == 既に1回答が出ているがこれに頼っていると進歩は無いよ。 まずマクロの記録が参考になるところまではやって、行き詰まった点で質問すべきだろう。 (1)はGoogleででも「エクセル セル 色づけ 判別」ででも照会 http://okwave.jp/qa/q3244298.htmlほか >If .ColorIndex = xlNone Thenの = xlNoneを <> xlNoneで使えるだろう。 == シート2に関しては、後の検索処理のことも考えて各(全)セル1つづつの判別になるだろう
- keithin
- ベストアンサー率66% (5278/7941)
作成例: sub macro2() dim h as range, hh as range for each h in worksheets("Sheet1").range("A1:A" & worksheets("Sheet1").range("A65536").end(xlup).row) set hh = worksheets("Sheet2").range("A:A").find(what:=h.value, lookin:=xlvalues, lookat:=xlwhole) if hh is nothing then h.interior.colorindex = xlnone else h.interior.color = hh.interior.color end if next end sub 自動云々は先日回答したとおりです。 #それと先日は割愛しましたが,セルの色塗りを含めてマクロの書きぶりもご利用のエクセルのバージョンに応じて少し変わる場合があります。 ご相談投稿時には,ご利用のソフト名は元よりご利用のソフトのバージョンまでしっかり明記することを憶えてください。