• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excelマクロの重複セルの削除について)

Excelマクロで重複セルを削除する方法

このQ&Aのポイント
  • Excelマクロを使用して、重複するセルを削除する方法について質問があります。現在、E列に重複するデータがある場合に、一意のデータのみを残すようにしたいと考えています。
  • 現在、E列にはいくつかの重複するデータが存在していますが、E4列以降のデータのみが削除されています。具体的には、E4セルの値がE3セルの値と同じであれば、E4セルを削除するという処理を行っています。
  • ただし、lastRow To 2 Step -1という言葉の意味について確認しています。この表現は、ループ処理の開始行と終了行を指定するものであり、lastRowがE列の最終行の行番号を示しています。Step -1は、ループのステップ(増加量)を指定しており、負の値であるため、逆向きにループを実行することを意味しています。つまり、E列の最終行から2行目まで、1行ずつ逆順に処理を行うということです。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! >E4列から下のデータしか重複セルが削除されません の原因と >lastRow To 2 Step -1はどういう意味なのでしょうか? の意味はすでに回答されていますので・・・ 一例です。 Sub test() Dim i As Long For i = Cells(Rows.Count, 5).End(xlUp).Row To 2 Step -1 If WorksheetFunction.CountIf(Range(Cells(1, 5), Cells(i, 5)), Cells(i, 5)) > 1 Then Cells(i, 5).Delete (xlUp) End If Next i End Sub ※ 行すべてを削除ではなく、E列セルのみ削除がご希望ですよね? ※ 重複行すべてを削除の場合は >Cells(i, 5).Delete (xlUp) を >Rows(i).Delete (xlUp) としてみてください。 こんな感じではどうでしょうか?m(__)m

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

>ここでいうlastRow To 2 Step -1はどういう意味なのでしょうか? については http://officetanaka.net/excel/vba/tips/tips14.htm の最後の方に説明されています。 >E4列から下のデータしか重複セルが削除されません。 記述されているコードでは 同じ内容が、連続してある場合に削除ではないでしょうか? If Cells(i, 5).Value = Cells(i - 1, 5).Value Then の部分の意味をよく考えて見てください。 重複を削除する方法が http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_jyufuku.html にいくつも説明されていますが わかりやすいのは、フィルターオプションの機能を利用した方法ではないでしょうか。

関連するQ&A