
エクセルの便利な機能の一つに、シートにあるデータ重複チェックがありますが、その効率的な利用にはVBAマクロの利用です。
VBAマクロを活用してデータ重複チェックと削除で、あなたのスキル向上と業務効率化をサポートする情報をお届けします。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
エクセルVBAマクロの作り方や実行の基本的なことを知りたい人は、下記記事を参照ください。
重複データを削除するVBAの活用例とシーン別ケース
シートにあるデータの重複をチェックし重複行を削除する。このエクセルVBAマクロで、データの重複チェックと削除が自動化されデータの整合性が保たれます。
このエクセルVBAマクロ処理をどこで使うのか?
初心者の人にはイメージがわかないかもしれませんが、業務効率向上のための処理を作成する前に、データをチェックしたり、データのどこかに問題があるときなどに利用するシーンがあります。
伝票件数はあっているが今日の売上が極端に少ないとき、担当者コードと取引区分で集約して、ありもしない返品や値引きがないかチェックする。
伝票入力にある摘要欄が、入力者によってまちまちで、長すぎたり、短すぎたり、入力しないといけないはずの返品時の元伝票Noがないなど、後から見てわからないと言われたとき、この重複処理で入力内容を集約して、現在の入力内容を調査、今後の入力ルールを決めるなどに利用できます。
Excel VBAで重複チェック&削除する基本マクロ
ブックの1番目のシートにあるデータから、A列とB列の値が同じ行を見つけ、その中で重複している行を削除します。最初の行は見出しとして扱い、削除対象には含めません。
- Option Explicit
- Sub RemoveDuplicates()
- Dim ws As Worksheet
- Set ws = ThisWorkbook.Sheets(1)
- ws.Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
- End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
VBAコードの解説|重複データを判定・削除する処理の流れ
1. Sub RemoveDuplicates()
マクロの始まりを示します。RemoveDuplicatesという名前のマクロを定義しています。Subは「サブプロシージャ」の略で、マクロがここから始まることを意味します。
2. Dim ws As Worksheet
wsという名前の変数を作成しています。wsは「ワークシート(Worksheet)」の略です。この変数を使って、特定のシートを参照できるようにします。
3. Set ws = ThisWorkbook.Sheets(1)
ws変数に、現在このマクロが保存しているブックの最初のシート(Sheets(1))を指定しています。ThisWorkbookはこのマクロが保存されているブック全体を指し、Sheets(1)はそのブックの1番目のシートを指します。
4. ws.Range("A1").CurrentRegion.RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
この行が実際に重複を削除する部分です。
・ws.Range("A1").CurrentRegion
・wsは先ほど指定したシート(1番目のシート)を指しています。
・Range("A1")は、そのシートのA1セルを指します。
・CurrentRegionは、A1セルを含む「隣接するデータの範囲全体」を自動的に選択します。A1セルから上下左右に隣接するセルにデータがあれば、それらをすべて含む範囲が選択されます。
・.RemoveDuplicates
・このメソッド(命令)は、その選択範囲から重複している行を削除する機能です。
・Columns:=Array(1, 2)
・重複の基準とする列を指定します。ここでは、1列目(A列)と2列目(B列)を基準に重複を判定します。
・Header:=xlYes
・Headerは「ヘッダー行(見出し行)」があるかどうかを示します。xlYesは「ヘッダー行がありますよ」という意味なので、最初の行を見出し行として扱い、重複判定の対象にはしません。
このようにして、データの中で同じ情報が繰り返されている行を整理できます。
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。
