【VBA】重複データを1コードで削除する【シンプル】

重複データは
 ・1コードで削除
できます!

1コードで削除できるため、
 ・ループ処理で各行を確認し、重複しているかどうかを判定する
といったやり方は不要です!

ループ処理が不要のため、
 ・処理の高速化が期待
できます!

RemoveDuplicates」メソッドを使用して、
重複データを削除します!
※「Duplicates(重複)」を「Remove(削除)」するメソッドです。

PR

VBAコード

例えば
 ・シート「sample」上に、以下の表のようにID「0001」のデータが重複している
場合に、

実行前
実行前

重複データを削除するために、以下のコードを実行します。
※ここでは「ID列(=2列目)」が同じである場合、重複していると判断することにします。

Sub sample()
    '表の2列目(=ID列)が重複していたら削除
    Worksheets("sample").Range("B2").CurrentRegion.RemoveDuplicates Columns:=2, Header:=xlYes
End Sub

「Range(“B2”).CurrentRegion」により、セル「B2」から続く一連の範囲対象となります。
※一連の範囲を示す「Rangeオブジェクト」を取得しています。
※ 「CurrentRegion」は「Rangeオブジェクト」のプロパティの1つです。

「Rangeオブジェクト」の「RemoveDuplicates」メソッドにより、重複データを削除します。

「RemoveDuplicates」メソッドの引数「Columns」に、「重複をチェックする列」を指定します。
※上記は「表の2列目(=ID列)」を指定しています。
※例えば「Array(2,3)」とすることで、2列目と3列目を指定できます(=複数の列をチェック対象にできます)

対象の1行目が見出しの場合は、「RemoveDuplicates」メソッドの引数 「Header」に「xlYes」を指定します。
※上記は指定しています。

引数「Header」に「xlYes」を指定することで、1行目(=見出し行)を重複チェックの対象外にできます。

PR

実行結果

重複データを削除できました。
※3行あったID「0001」の行が、1行になりました。

実行結果
実行結果
PR

参考①

重複しているセルの背景色を強調(=変更)することで、重複有無を確認することもできます。

詳細は以下の記事をご確認ください。

PR

参考②

「重複を除いたリスト」の作成もできます。

詳細は以下の記事をご確認ください。

PR

参考③

配列から重複を削除することもできます。

詳細は以下の記事をご確認ください。

PR

参考④

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「Rangeオブジェクト」の「CurrentRegion」プロパティ


●「Rangeオブジェクト」の「RemoveDuplicates」メソッド

タイトルとURLをコピーしました