りゅう
はじめに
セルの重複データを削除する際は、RangeオブジェクトのRemoveDuplicatesメソッドがオススメです!
具体的な使用方法を解説しますので、ぜひ最後までお付き合いください。
この記事を読むメリット
- セルの重複データを削除する方法が分かります。
- RemoveDuplicatesメソッドの引数など、詳細な使い方を解説します。
めい
結論だけ知りたい方は、目次からサンプルコード欄をクリックしてください。
使用する機能について
データの重複削除は、RangeオブジェクトのRemoveDuplicatesメソッドを使用します。
まずは、メソッドの構文や引数をご紹介します。
RemoveDuplicatesメソッド
構文
構文
Range.RemoveDuplicates(Columns , Header)
引数
# | 引数 | 必須 | 詳細 |
1 | Columns | ○ | 重複を削除したい列の位置を指定します。 |
2 | Header | 最初の行をヘッダとして扱うかを指定します。 ※定数を指定。詳細は後述します。 |
定数(Header引数)
# | 定数 | 規定値 | 値 | 詳細 |
1 | xlGuess | 0 | ヘッダがあるかどうかをExcelが判断します。 ※ヘッダがあると判断された場合はxlYesと同様の挙動をします。 |
|
2 | xlYes | 1 | 1行目をヘッダと判断し、重複削除の範囲対象外となります。 | |
3 | xlNo | ○ | 2 | 範囲全体を重複削除の範囲対象となります。 |
サンプルコード
前提
説明の前提として、Sheet1とSheet2に同様の内容の表が存在することを前提とします。
重複データ削除(単一列指定)
サンプルコード
サンプルコード
Public Sub execRemoveDuplicatesForArgSingle()
' [Sheet1]シートのA列(1列目)に対してデータ重複を削除する
ThisWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion.RemoveDuplicates _
Columns:=1, Header:=xlYes
' [Sheet2]シートのB列(2列目)に対してデータ重複を削除する
ThisWorkbook.Worksheets("Sheet2").Range("A1").CurrentRegion.RemoveDuplicates _
Columns:=2, Header:=xlYes
End Sub
りゅう
補足となりますが、セルA1を指定することでExcelが自動で表の範囲を識別してくれます。
実行結果
Sheet1
Sheet2
めい
Sheet2の1列目は「りんご」が重複しているよね。
りゅう
2列目の重複のみを削除しているので、1列目の重複は残ったままになります。
次項では、複数列を指定して削除する方法をご紹介します。
次項では、複数列を指定して削除する方法をご紹介します。
重複データ削除(複数列指定)
サンプルコード
サンプルコード
Public Sub execRemoveDuplicatesForArgMulti()
' [Sheet1]シートのA列(1列目と2列目)に対してデータ重複を削除する
ThisWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion.RemoveDuplicates _
Columns:=Array(1, 2), Header:=xlYes
End Sub
実行結果
りゅう
「商品名:ばなな / 在庫:20」の列が削除されましたね。
最後に
いかがでしたでしょうか。
繰り返し処理などを用いて自前で重複を削除するよりも、本機能を使用した方が高速で安全です!
この記事が、読者さまのお力になれれば嬉しいです!
コメント