• ベストアンサー

EXCEL2003 重複データに色を付けるVBA

A列のA2からA21に氏名、B列のB2からB21に住所が入力済です。A列で重複しているデータに色をつけて、さらに並び替えをしたいと思います。色は黄色、並び替えの設定は黄色で色を付けたセルがA2から順に表示するVBAを教えていただけませんでしょうか。またお手数でも列をB列、C列に変更した場合についても教えていただけませんでしょうか。VBAコードの貼り付けはできます。よろしくお願いします。

noname#197073
noname#197073

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 一例です。 Sub test() Dim i As Long Range("A2:B21").Sort key1:=Cells(2, 1), order1:=xlAscending Columns("A").Insert For i = 2 To 21 If WorksheetFunction.CountIf(Columns("B"), Cells(i, "B")) > 1 Then Range(Cells(i, "B"), Cells(i, "C")).Interior.ColorIndex = 6 Cells(i, "A") = i Else Cells(i, "A") = WorksheetFunction.CountA(Columns("B")) + i End If Next i Range("A2:C21").Sort key1:=Cells(2, "A"), order1:=xlAscending Columns("A").Delete (xlToLeft) End Sub こんな感じではどうでしょうか? コード内にデータとは関係ない列番号「C」が入っていますが、気になれば最後の行 Columns("A").Delete (xlToLeft) を削除してマクロを試してみてください。 参考になれば良いのですが・・・m(__)m

noname#197073
質問者

お礼

早速の回答ありがとうございました。詳細のコードを記載していだだき感謝です。記載していだだいたVBAをお手本にしてやってみます。ご指導ありがとうございました。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

VBAの一例です。 表の範囲を変えるなら、Range("A2:B21") のところを変更してください。 なお、以下のコードは、並び替えのため表の右となりの一列を作業列に使用してますので、表の右となりの一列は空白にして置いてください。 Sub Sample01()   Dim Rng As Range, c As Range, c2 As Range   Dim n As Long, i As Long   Set Rng = Range("A2:B21").Columns   For Each c In Rng(1).Cells     n = 0     For Each c2 In Rng(1).Cells       If c.Value = c2.Value Then         n = n + 1         If n > 1 Then           c.Resize(, 2).Interior.ColorIndex = 6           c2.Resize(, 2).Interior.ColorIndex = 6           i = i + 1           If IsEmpty(c.Offset(, 2)) Then             c.Offset(, 2) = i           End If           If IsEmpty(c2.Offset(, 2)) Then             c2.Offset(, 2) = i           End If         End If       End If     Next c2   Next c   Rng.Resize(, 3).Sort Key1:=Rng(2).Offset(, 1).Cells(1), Order1:=xlAscending, Header:=xlNo   Rng(2).Offset(, 1).ClearContents End Sub

noname#197073
質問者

お礼

回答、誠にありがとうございました。詳細なコードを記載していただきお手数をおかけしました。コードを参考に勉強します。時間をかけてやってみます。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

あまり勉強もしないで丸投げしているようだ。 >列をB列、C列に変更した場合についても教えていただけませんでしょうか など言っているレベルでは、現状では、VBAは無理でしょう。 VBAを使わないでも、条件付書式で出来るのでは。 A2:A10など範囲指定 書式ー条件付書式ー数式がー式は =COUNTIF($A$2:A2,A2)>1 書式を設定 これで重複する氏名で2番目以後の行に色をつけられる。 ー 上記の操作をマクロの記録で取る方法もある。 ーー 条件付書式を離れて 下記は要素的にはマクロの記録を採れば判る。 (1)セルに色を着ける (2)黄色とかの色指定 (3)並べ替え  ただし重複チェックはエクセルの操作ではない。上記のように関数では出来る。これを関数を使わず、VBAプログラムでやるのは、VBAでも中級以上のレベルでしょう。

noname#197073
質問者

お礼

早速の回答ありがとうございました。条件書式を参考に勉強します。たいへんお手数をおかけしました。

関連するQ&A

  • エクセル 重複セルについて

    住所リストを制作しておりまして、 全リストから、一定の人を削除したリストを作りたいのですが、 方法が分かりません。 重複しているセルをソートできればと思うのですが、 どなたかお教えいただけますでしょうか?   A列  B列 C列  D列  1 住所 田中     太田 2 住所 斉藤     田中 3 住所 太田     木村 4 住所 木村     渡邉 5 住所 小林  B列にある氏名の中にD列の氏名が重複していたら、 下記のようなことができますでしょうか? ●C列に”重複”と出る   A列  B列 C列    1 住所 田中 重複 または ●B列と重複するD列のセルが隣に並び変えられる   A列  B列 C列  D列  1 住所 田中     田中 なお、A列とB列は一緒にしたいので、 B列だけが並び変えられることは避けたいです。 緊急SOSです! よろしくお願いいたします。

  • 重複の数によって塗潰しの色を変える方法

    このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がおみえでしたらよろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】 添付図のとおり、A列とB列に数字が入っていて重複がありますが 昇順で並んでいます。それが100行あります。重複の数に応じて以下のとおりセルの塗潰しがしたいです。  A列&B列重複 ・・・2個なら”黄色”で塗潰し。  A列&B列重複 ・・・3個なら”青色”で塗潰し。  A列&B列重複 ・・・ 4個なら”緑色”で塗潰し。  A列&B列重複 ・・・ 5個なら”赤色”で塗潰し。 上記を実現する方法をVBAで実現する方法が知りたいです。   【注意事項】   ・A列、B列の数字は毎回異なります。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 【Excel】重複データのカウント方法

    A列に「ID」、B列に「種別」を設定した場合、 C1セルに「種別」の重複を除いた“果物”の合計を 出したいのですが、どのような関数にすればいいのでしょうか。 なお、1つのIDの中にある「種別」は必ず1種類となります。 下図の、重複を除いた果物の合計数は「3」(ID=10001、10002、10004) と黄色付したC1セル出したい次第です。

  • 【エクセル】異なったシートの重複データに印をつける

    お世話になります。 エクセル初心者のため、説明不足等ありましたら申し訳ございませんが、宜しくお願い致します。 シート1: 列Bに3,000件の氏名(氏名はセルB2から入力されています) シート2: 列Bに2,000件の氏名(氏名はセルB2から入力されています) シート1とシート2に共通して存在する氏名を抽出したいと思っています。 シート1の列Aのセルに、重複している社員氏名があれば、数字の1を入れたいのですが、その場合はどのような式を作ればよいのでしょうか。 お忙しいところお手数お掛けいたしますが宜しくお願い致します。

  • VBAでの重複データ統一についてです。

     いつもお世話になっております。VBA初心者です。 過去の質問で、2つのセルの重複データを一つのデータにする処理があったのですが、3つのセルの重複データを1つのデータにするやり方に苦戦しております。 (A列) (B列) (C列)  A社  鈴木   男性  B社  田中   女性  A社  鈴木   男性  B社  佐藤   女性  B社  田中   女性  A社  鈴木   男性      ↓↓ (A列) (B列) (C列)  A社  鈴木   男性  B社  田中   女性  B社  佐藤   女性  となるようにしたいのです。 サンプルソース等がありましたら、 よろしくお願いいたします。

  • エクセル 重複行色付(VBA)について質問です。

    Excelで、2ヶ所の場所を重複しているのかどうかチェックし、重複でしたらその行ごと色を付けたいと思っております。 |    A    |    B   |   C   |   D   |   E   |    田中    1046587920   8/2     8/6    100364987    鈴木    1098463612   8/3     8/5    125698001    森川    1548758743   8/20    8/23    103587410    川島    1046587920   8/22    8/23    100365871    森本    1046587920   8/25    8/26    100364987 例えば、上記の様な一覧があり 「B列」 と 「E列」 とで重複を確かめて、同じであれば色が付く様にVBAを組みたいのですが、現在調べて 「B列」 のみの重複に色付けは出来るようになったのですが、2ヶ所重複に色をつけることで困っております。 上の例で行きますと、田中さんと森本さんの行に色が付く形が理想でして、川島さんの、「B列」は該当しておりますが、「E」列が異なるため、色は付きません。 行数は。2万行前後になるのですが、関数を当てると処理が非常に重くなるため、VBAを試みております。 お知恵をお貸し頂けましたら幸いです。

  • 重複数字の数に応じてセルに色をつける。

    このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がお見えでしたらよろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  また私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、1列×25行の中に数字が1~31まであり、  重複数字を含んで昇順に並んでおり、それが4列あります。  1列毎に数字を見て以下の条件にあえばセルを塗り潰します。   2個重複⇒セルを黄色に塗り潰す。   3個重複⇒セルを青色に塗り潰す。   4個重複⇒セルを緑色に塗り潰す。   5個重複⇒セルを赤色に塗り潰す。   上記を実現する方法をVBAで実現する方法が知りたいです。   【注意事項】   ・1列×25行の中にある数字の並びは毎回異なります。   ・1列×25行の中に重複数字が無い場合があります。(例:A列)   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • excelの重複について

    顧客情報を管理しています。 A列~住所 B列~名前 C列~空白(必要に応じ○を入力) D列~空白or重複 (1)、順に入力し同じ住所と名前の重複があればセルに色が付く方法ってありますか? 住所のみ一致や名前のみ一致の時は色は付けません。 (2)、さらに上記の条件で同じ住所と名前があればセルに色を付けC列のセルに○が入力されA列B列C列すべてが重複したらD列に「重複」を表示できますか? 条件付き書式や関数等の組み合わせいいですが、初心者なのでマクロは使用できません。 また抽出したりする工程は不要です。 よろしくお願いします。 例 A列 : B列 : C列 : D列 住所 : 名前:チェック: 1 : 1条東1丁目 : 田中: ○ 2 : 2条東2丁目 : 鈴木: ○--------------2条東2丁目の鈴木は2つあるので色を付ける。 3 : 3条東3丁目 : 竹田: ○--------------3条東3丁目の竹田は2つあるので色を付ける。 4 : 1条東1丁目 : 小林: 5 : 2条東2丁目 : 鈴木 : ○ 重複-----2条東2丁目の鈴木に○が2つ付いたので「重複」と表示 6 : 3条東3丁目 : 竹田-----------------3条東3丁目の竹田は2つあるので色を付ける。

  • 空白セルと行に色をつけるVBA Excel2010

    VBAの超初心者です。 条件が一致した時に、セルの背景を黄色にしたいのですが、VBAで教えて下さいませんか? D1が空白セルの場合には、C1のみを黄色。 D1とB1の両方が空白の場合は、A1からC1を黄色にしたいのです。 尚、行はどんどん増えて行く予定です。 「条件付き書式」では考えておりません。 よろしくお願いします。

  • 同列で重複する文字をひとつとし別セルに順に表示

    VBAコードを用い画像のようにA列で重複する文字は無視し違う文字のみ順に別セルに表示したいのですがどなたか解る方宜しくお願いします。

専門家に質問してみよう