RemoveDuplicatesメソッドとは
選択範囲内の重複したデータを自動で削除する機能です。
リスト内に同じ情報は必要ない、整理をしたい、といった場合に使えます。
構文
Object.RemoveDuplicates(Columns, Header)
| Object | Rangeオブジェクトを表す変数です。 |
| Columns | 重複した情報を含む列のインデックスの配列を指定します。必須。 |
| Header | ヘッダーの有無を XlYesNoGuess で指定します。規定値は xlNo です。 |
| XlYesNoGuess | 値 | 説明 |
| xlGuesss | 0 | ヘッダーの有無をExcelが判断します。 |
| xlYes | 1 | ヘッダーを含む場合に指定します。 |
| xlNo | 2 | ヘッダーを含まない場合に指定します。 |
重複するデータを削除するサンプルコード
以下をA1セルに貼り付けてください。
| 名前 | 個数 |
| A | 10 |
| B | 20 |
| B | 50 |
| A | 10 |
Public Sub xlYes()
'A列の重複データを削除する
'ヘッダーを含む
Range("A1:B5").RemoveDuplicates Columns:=1, Header:=xlYes
End Sub
Public Sub xlNo()
'A,B列の重複データを削除する
'ヘッダーを含まない
Range("A2:B5").RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
End Sub
Public Sub xlGuesss()
'A,B列の重複データを削除する
'ヘッダーを自動で判定
Range("A1:B5").RemoveDuplicates Columns:=Array(1, 2), Header:=xlGuesss
End Sub
注意点
- 上記サンプルコードは面倒ですが、実行する度に表を復元する必要があります。
- 似た機能に重複データを非表示にする AdvancedFilter がありますが、
RemoveDuplicates はデータを削除をしてしまい、元に戻せなくなるので注意が必要です。
関連記事
- オートフィルタを使用する【AutoFilterメソッド】
- オートフィルタよりも高性能なフィルター処理を行う【AdvancedFilterメソッド】
- 重複するデータを非表示にする【AdvancedFilterメソッド】



コメント