Excel VBA 重複データを削除する

スポンサーリンク
スポンサーリンク

重複データを削除する方法

重複データを削除する機能は「Excel 2007」から追加されました。セル範囲から重複しているデータを削除するにはRange【レンジ】オブジェクトのRemoveDuplicats【リムーヴディプルキャットゥ】メソッドを使用します。Remove【リムーヴ】は取り除くという意味があり、Duplicats【ディプルキャットゥ】は重複という意味があります。

RemoveDuplicats【リムーヴディプルキャットゥ】メソッド

RemoveDuplicats【リムーヴディプルキャットゥ】メソッドの書式

[]内は省略可能
オブジェクト.RemoveDuplicates(Columns,[Header])


設定値(引数)の説明

  • オブジェクト(必須)
    重複を削除するセル範囲をRange【レンジ】オブジェクトで指定します。
  • Columns【カラムス】(必須)
    重複をチェックする列のインデックス番号を指定します。複数の列についての重複チェックを行う場合はArray【アレイ】関数を使用した配列で指定します。
  • Header【ヘッダー】(省略可)
    先頭行をタイトル行とみなすかどうかを表す以下の定数を指定します。

    定数内容
    xlNO先頭行を見出しとしません。(既定値)
    XlYes先頭行を見出しとしてデータから除外します。
    xlGuessGuess【ゲス】は推測という意味があり
    Excelが見出しの有無を判断します。

重複行を削除するコード例

Sub 重複削除()
Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
End Sub

コードの解説

A1セルから始まるデータ範囲をRange【レンジ】オブジェクトのCurrentRegion【カレントリージョン】プロパティで参照してRemoveDuplicates【リムーヴディプルキャットゥ】の引数 Columns【カラムズ】にArray【アレイ】関数を使って重複を確認する列のインデックス番号を指定しています。ここではA列B列C列のデータの重複を指定しています。例えば、D列があってABC列は重複しているがD列のデータは重複していない場合でもABC列が重複しているのでデータは削除されます。すべてのデータが重複している場合のみデータを削除する場合は、配列にすべての列のインデックス番号を指定します。

RemoveDuplicates【リムーヴディプルキャットゥ】で削除した重複データは一度削除すると元には戻せません。心配のようであれば、Range【レンジ】オブジェクトのAdvancedFilter【アドバンスドフィルター】メソッドを使用して重複のないデータを別シートに抽出する方法もあります。

以上で、重複データを削除する方法の解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク