Excelで顧客リストや申込一覧を扱っていると、同じ名前やメールアドレスが何度も出てくることがあります。
1件ずつ目で確認して削除する作業は、時間がかかります。しかも、必要な行まで消してしまわないか不安になることも多いと思います。
結論から言うと、重複削除はChatGPT×VBAで自動化しやすい事務作業です。
まず決めるべきことは「何を重複と見るか」
重複削除で大事なのは、コードを書く前の準備です。
先にルールを決めないと、必要なデータまで消してしまう可能性があります。
たとえば、次のような違いがあります。
| 判断基準 | 例 | 注意点 |
| 氏名 | 山田花子 | 同姓同名を消す可能性がある |
| メールアドレス | sample@xxx.xx.xx | 比較的判断しやすい |
| 電話番号 | 090-0000-0000 | ハイフンありなしに注意 |
| 顧客ID | C001 | 一番安全なことが多い |
| 氏名+生年月日 | 山田花子+1990/1/1 | 複数列で判断できる |
実は、Excelの重複削除で失敗する原因の多くは、ここにあります。
「同じ名前だから消す」と決めてしまうと、別人まで消すかもしれません。
一方で、顧客IDやメールアドレスのように一人ひとりで違う情報なら、判断しやすくなります。
どの列を基準にするかは、社内ルールやデータの作り方によって変わるため、確認が必要です。
同じメールアドレスが2件ある場合、上の行を残すのか、下の行を残すのか、最新の日付を残したい場合もあります。
ここを決めずに削除すると、あとで「どちらを残すべきだったのか」と困ることがあります。
重複削除マクロは、行そのものを削除することがあります。
そのため、元ファイルをコピーしてから試しましょう。
本番ファイルでいきなり実行しないことが大切です。
重複削除のExcel標準機能・関数・VBAの違い
重複削除は、VBA以外でもできます。
自分の作業に合う方法を選びましょう。
| 方法 | 向いている人 | メリット | デメリット |
| Excel標準 | たまに作業する人 | すぐ使える | 毎回手順が必要 |
| COUNTIF関数 | 削除前に確認したい人 | 重複を見える化できる | 関数列を作る手間がある |
| VBA | 同じ作業を何度もする人 | ワンクリックで完了 | 条件を間違えると危険 |
月に1回だけなど、作業回数が少ないならExcel標準機能でも十分です。
すぐに使えるので、VBAが不安な人にも向いています。
削除する前に重複を確認したい場合は、COUNTIF関数も便利です。
「このメールアドレスは何回出てくるか」を見える化できます。
毎週同じリストを処理する場合は、VBAが向いています。
ボタンひとつで処理できるようになるため、確認作業の負担を減らせます。
ChatGPTに重複削除VBAを作ってもらうプロンプト
ChatGPTには、できるだけ具体的に条件を伝えます。
- シート名
- 見出し行があるか
- データが何行目から始まるか
- 重複判定に使う列
- どの行を残すか
- 削除するのか、別シートに抽出するのか
特に大切なのは、「どの行を残すか」です。
同じメールアドレスが2件あった時、上の行を残すのか、下の行を残すのか。もしくは、最新の日付を残すのか。
ここを決めずに削除すると、あとで困ることがあります。
おすすめの依頼文は次の通りです。
Excel VBA初心者です。
事務作業で使う重複削除マクロを作りたいです。
シート名は「申込一覧」です。
1行目は見出しです。
メールアドレスが入っているC列を見て、重複している行を削除したいです。
重複している場合は、上にある行を残してください。
削除前にバックアップ用シートを作るコードにしてください。
貼り付け場所と実行方法も初心者向けに教えてください。
重複削除VBAを使う時の注意点
便利な反面、重複削除は失敗すると影響が大きい作業です。
最初は必ずコピーしたファイルで試します。
うまく動いたことを確認してから、本番ファイルで使うか判断しましょう。
顧客名、メールアドレス、会社名などをそのままChatGPTに貼るのは避けましょう。
「A社」「sanple@sample.com」のような架空データに置き換えると安心です。
うまく動かない時のチェックポイント
VBAが動かない時は、エラー文をChatGPTに伝えましょう。
以下のVBAがうまく動きません。
初心者向けに原因と修正後コードを教えてください。
【エラーメッセージ】
【止まっている行】
【実際のシート名】
【重複判定したい列】
【残したい行のルール】
【困っていること】
まとめ
ChatGPT×VBAを使えば、よくある重複削除作業を自動化できます。
ただし、最初に決めるべきなのはコードではありません。
「何を重複と見るか」「どの行を残すか」を先に決めることが大切です。
不安な時は、直接削除ではなく、別シートに抽出する方法から始めましょう。そして、必ずコピーしたファイルで試してください。
この流れを守れば、手作業で確認していた重複データを、少しずつ自動化できるようになります。
よくある質問
使えます。ただし、最初はコピーしたファイルで試しましょう。コードの意味もChatGPTに説明してもらうと安心です。
別シート抽出がおすすめです。重複データを確認してから削除できるため、失敗しにくいです。
たまに使うだけなら標準機能で十分です。毎回同じ作業をするなら、VBAで自動化する価値があります。
同姓同名の人がいる可能性があります。顧客ID、メールアドレス、電話番号など、より確実な列を使う方が安全です。業務ルールは必ず確認してください。
そのまま貼るのは避けましょう。氏名、メールアドレス、会社名などは架空データに置き換えてください。