ExcelVBA RemoveDuplicatesで特定の範囲から重複値を取り除く方法

 

Excel VBAのRemoveDuplicatesは、特定の範囲から重複した値を取り除くためのメソッド。RemoveDuplicatesの使い方にサンプルコードをもとに解説します。

 

2025年目標に、ExcelVBAエキスパートベーシック資格取得で、仕事の効率をあげる人になりませんか
本サイト参考:日常業務でExcelを多用し、手動作業を減らしたいと考えている方におすすめの記事

 

Excel VBA RemoveDuplicatesの基本的な使用方法

Option Explicit

Sub RemoveDupes()
    ' 対象範囲の指定
    Dim rng As Range
    Set rng = Range("A1:A10")  ' 重複をチェックしたい範囲を指定
    
    ' 重複データの削除
    rng.RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

この例は、A列(1列目)の範囲から重複した値を削除しています。

例えば、A列に1行目から下記データ
Apple
Banana
Apple
Orange
Banana

RemoveDuplicatesを実行した結果は下記になります。

Apple
Banana
Orange

指定した列において重複したデータが削除され、一意のデータのみ残ります。

 

Columns
重複をチェックする列の指定。上記の例では1列目(A列)

Header
ヘッダーがある場合、xlYes、ヘッダーがない場合、xlNoを指定します

 

Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

 

注意事項

RemoveDuplicatesメソッドは元のデータを変更します。削除されたデータは元に戻せませんので、事前にバックアップをとるなどの対策が必要です。また、重複の判定は指定した列での完全一致です。

複数列を対象にする場合は、Columnsで対象列を指定します。

 

Excel VBA RemoveDuplicatesで複数列を指定

Option Explicit

Sub RemoveDupesMultipleColumns()
    ' 対象範囲の指定
    Dim rng As Range
    Set rng = Range("A1:C10")  ' 重複をチェックしたい範囲を指定
    
    ' 重複データの削除
    rng.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlNo
End Sub

この例は、A列、B列、C列の組み合わせで重複をチェックして削除します。

 

Columns
重複をチェックする列の指定。Array 関数を使用して複数の列を指定します。上記の例では、A列、B列、C列の組み合わせで重複をチェックしています。

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。