質問: マクロの書き方2 マクロの書き方2 tom04さま、本当にありがとうございました。めぐみです。 すみません、先程の質問の続きになってしまいます。 sheet2にのa列は時々同じ番号が2つ,3つあることがあります。 sheet2に同じ番号があった場合は、sheet1のダブっている番号の横のb列セルを黒くしたいです。 そのセルの中はsheet2の情報が反映されてもされなくてもどちらでもかまいません。 ただ、sheet2のa列に同じ番号があった場合にsheet1のダブっている番号の横のb列セルを黒くなるという機能が追加されていればそれで良いです。 例えば下記のように1行目と4行目に同じ番号が存在していたら、sheet1のa列の702725の横のb列のセルが黒くなっていたらいいです。 ■sheet2 a列 b列 c列 702725 x 702872 x 770074 0 702725 0 770223 z 770474 0 770242 x 770264 x 770330 0 770347 x 770422 x 770468 0 770523 x 770577 0 770627 x 770672 x 770677 0 770720 x 770723 x 770725 z 770727 x 恐れ入りますが何卒よろしくお願いいたします。
回答: こんばんは! >sheet2にのa列は時々同じ番号が2つ,3つあることがあります。 とあります。 前回 → http://okwave.jp/qa/q7099523.html のコードでは最後のデータしか表示されませんので、 一つの案ですが・・・ sheet2のa列にいくつ重複データがあっても構わないので、sheet1のb列・c列・・・列にsheet2のデータを表示してはどうでしょうか? 今回もsheet2のb・c列のどちらかにデータが入っているとします。 c列データ表示の場合は赤文字・太字にしてみました。 sub test3() dim i, j as long dim ws1, ws2 as worksheet set ws1 = worksheets("sheet1") set ws2 = worksheets("sheet2") application.screenupdating = false for i = 1 to ws1.cells(rows.count, 1).end(xlup).row for j = 1 to ws2.cells(rows.count, 1).end(xlup).row if ws1.cells(i, 1) = ws2.cells(j, 1) then if ws2.cells(j, 2) <> "" then ws1.cells(i, columns.count).end(xltoleft).offset(, 1) = ws2.cells(j, 2) else with ws1.cells(i, columns.count).end(xltoleft).offset(, 1) .value = ws2.cells(j, 3) with .font .colorindex = 3 .bold = true end with end with end if end if next j next i application.screenupdating = true end sub こんな感じではどうでしょうか?m(_ _)m ※ 当方をご指名のような感じの質問になっていますが、他の方はなかなか回答しづらいと思います。 おっさんをご指名していただくのはうれしいのですが・・・ 当方の方法がベストではありませんので、個人名を出さない方が 他の方々からの投稿があって、もっと良い方法が見つかるかもしれません。