【超便利】重複行を一瞬で削除できるRemoveDuplicatesの使い方!【Excel VBA】
こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!
今回はこのような悩みについて解説します。
重複した行を削除する方法ってどうすればいいの?
- 重複している行の削除方法
- RemoveDuplicatesの基礎的な使い方
はじめに
重複行を削除するにはRemoveDuplicatesを使いましょう!
早速どのような処理が行われるのかコードと画像を見ていきましょう!
Sub Sample1()
Dim maxRow As Long
maxRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:D" & maxRow).RemoveDuplicates (Array(2, 3, 4)), Header:=xlYes
End Sub
このようにRemoveDuplicatesを使うと短いコードで重複行を削除できます。
次にコードの詳しい解説をしていきます!
RemoveDuplicatesとは
概要
object.RemoveDuplicates ( columns [, header ] )
RemoveDuplicatesとはメソッドを1つになります。
メソッドとはオブジェクト(対象)に命令を与えることができます。
このメソッドでは指定したセル範囲から重複データを含む行を削除します。
削除される場合は、重複しているデータが含まれる行の先頭行を残して削除されます。
オブジェクト
対象となるオブジェクトはRangeオブジェクトを使用します。
今回は対象をA1セルからCの最終行のセルまでを選択しました。
最終行を取得するコードの書き方も合わせてコピペして使ってください!
引数
第一引数では重複対象を探す列を指定します。
今回は2,3,4列目が重複している行を削除したかったのでこのように書いています。
ここは列数を増やすこともできるので好きなように変えてください!
第二引数は1行目をタイトルとして範囲に含めるかを指定できます。
基本的には省略しても問題ありませんので必要により下記の表を活用して使ってみてください!
定数 | 値 | 内容 |
---|---|---|
xlGuess | 0 | 先頭行をタイトル行とみなすかどうか、Excel が特定します。 |
xlYes | 1 | 先頭行をタイトル行とみなします。 |
xlNo | 2 | 範囲全体が重複データ削除の対象になります。(既定値) |
まとめ
今回はRemoveDuplicatesメソッドを使った重複行を削除する方法を見ていきました。
このほかにも1行ずつ確認していき方法や、COUNTIF関数を使う方法もありますがRemoveDuplicatesメソッドを使った方がコードがスッキリして処理も軽いのでおすすめです。
ぜひ実際に手を動かして試してみてください!
この記事で少しでも皆さんのお役に立てれば幸いです!
忘れないうちにお気に入り登録もお願いします!
ありがとうございました!
コメントはお気軽に!