Excel VBAで順番に比較して違うときだけ書き出す方法(重複削除付き)

パソコンパソコン・スマホ教室
スポンサーリンク

こんにちは!今回は、Excel VBAを使って「順番に比較して、違うときだけ書き出す方法」について、初心者の方にもわかりやすく解説します。特に、重複データの削除に関する内容を中心にお話ししますので、ぜひ最後までご覧ください。

スポンサーリンク

順番に比較して違うときだけ書き出すとは?

Excelのイメージ

Excelのイメージ

まず、順番に比較して違うときだけ書き出すとは、例えば以下のようなデータがあるときに、

列A 列B
りんご りんご
ばなな みかん
みかん みかん

このような場合に、列Aと列Bを順番に比較し、「違う」と判断したときだけ、その行を新しい場所に書き出すという処理を行います。

なぜこの処理が必要なのか?

実務では、2つのリストを比較して、異なるデータを抽出したい場面がよくあります。例えば、商品リストと在庫リストを比較して、在庫がない商品を抽出するなどです。このような作業を手作業で行うと、時間がかかり、ミスも発生しやすくなります。そこで、VBAを使って自動化することで、効率的に作業を進めることができます。

VBAでの実装方法

では、実際にVBAを使って順番に比較して違うときだけ書き出す方法を見ていきましょう。

  1. まず、Excelを開き、VBAエディタを起動します。
  2. 新しいモジュールを挿入し、以下のコードを入力します。
Sub CompareAndExtract()
Dim ws As Worksheet
Dim lastRowA As Long, lastRowB As Long
Dim i As Long, j As Long
Dim outputRow As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
lastRowA = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
lastRowB = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
outputRow = 1
For i = 1 To lastRowA
For j = 1 To lastRowB
If ws.Cells(i, "A").Value <> ws.Cells(j, "B").Value Then
ws.Cells(outputRow, "C").Value = ws.Cells(i, "A").Value
outputRow = outputRow + 1
End If
Next j
Next i
End Sub

このコードでは、Sheet1の列Aと列Bを順番に比較し、異なる値があった場合に列Cに書き出しています。

重複データの削除方法

次に、書き出したデータから重複を削除する方法を紹介します。

  1. 先ほどのコードの最後に、以下のコードを追加します。
Sub RemoveDuplicates()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Range("C1:C" & ws.Cells(ws.Rows.Count, "C").End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

このコードでは、列Cのデータから重複を削除しています。

実行結果の確認

実行後、Sheet1の列Cには、列Aと列Bを比較して異なるデータが順番に書き出され、重複が削除された状態になります。

よくある質問や疑問

Q1: 列Aと列Bのデータが異なる場合に、どちらを優先して書き出すべきですか?

一般的には、列Aのデータを優先することが多いですが、業務の内容や目的によって異なります。必要に応じて、コードを調整してください。

Q2: 重複データを削除する際に、最初の出現を残す方法はありますか?

はい、RemoveDuplicatesメソッドは最初の出現を残し、それ以降の重複を削除します。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

今回は、Excel VBAを使って「順番に比較して違うときだけ書き出す方法」と「重複データの削除方法」について解説しました。これらの技術を活用することで、日々の業務を効率化することができます。もし他にも疑問やお悩みがあれば、お気軽にLINEからお声掛けください。

コメント

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