Excel VBAで重複削除を1秒で!RemoveDuplicatesの使い方

【業務効率化】VBA
スポンサーリンク

事務作業をしていると、必ずぶつかるのが「重複データ」の処理ではないでしょうか。
私も昔、数千件の顧客リストを1枚ずつ目視でチェックして、丸一日費やした経験があります。

しかし、Excel VBAの「RemoveDuplicates」を使えば、そんな不毛な作業をたった1秒で終わります。

【業務効率化】VBAの記事を見る 

RemoveDuplicatesとは?

プログラミング用語で書くと難しそうですが、その役割はデータを整理するための「ふるい」のようなものです。

たくさんのイチゴ(データ)が入ったカゴを想像してみてください。
カゴの中には、大きさや形が全く同じイチゴがいくつも混ざっている状態です。

ここでRemoveDuplicatesを使えば、「同じ形のイチゴは1個だけ残して、重複している分はすべて取り除いて」という指示を、一瞬で実行してくれます。

【コピペで使える】基本のコード

まずは、特定の列(例えばA列)の重複を削除するシンプルなコードを紹介します。

Sub DeleteDuplicateData()
    ' 対象となる表の範囲を指定します(A1セルから連続する範囲)
    ' Columns:=1 は「1列目(A列)を基準に重複をチェックして」という意味です
    ' Header:=xlYes は「1行目はタイトル(見出し)だから消さないで」という指定です
   
    Range("A1").CurrentRegion.RemoveDuplicates Columns:=1, Header:=xlYes
   
    ' 完了を知らせるメッセージ
    MsgBox "重複データの削除が完了しました!"
End Sub

実務で役立つ「複数条件」での重複削除

「名前だけじゃなくて、住所も一致している時だけ消したい」という場合も多いですよね。その場合は、基準にする列を増やすだけです。ぜひ活用してみてください!

Sub MultiColumnDelete()
    ' 1列目(名前)と2列目(住所)の両方が一致した場合に削除します
    ' Array(1, 2) と書くことで、複数の列を指定できます
    Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
   
    MsgBox "複数条件での削除が完了しました。"
End Sub

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました