はじめに
Excelで大量に重複削除をしたいというのがありました。
しかし、標準機能では空欄セルを残したまま重複が削除できません。
そのため、VBAを作成する必要がありました。
簡易的ではありますが、せっかくなのでこちらに残しておきます。
VBAコード
現在開いているエクセルシートのA1の行から空欄を残して重複を削除するVBA
値を変更すれば任意の列の重複を削除できる
Option Explicit
Sub duplication_delete()
Dim wb As Workbook 'Workbook
Dim ws As Worksheet 'Worksheet
Dim LastRow '最終行
Dim i 'ループ用
Dim ConfValue '値(確認元)
'現在開いているWorkbookとWorksheetを変数に設定する
Set wb = ActiveWorkbook
Set ws = wb.ActiveSheet
'現在開いてるエクセルの現在のシートのA列の最終行を取得
LastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
'確認元の値(A2)
ConfValue = ws.Cells(2, 1).Value
'1~最終行まで繰り返す
For i = 1 To LastRow
'確認元の値と現在の行の値が同じ場合
If ConfValue = ws.Cells(i, 1).Value Then
'現在の行の値、書式を削除
ws.Cells(i, 1).Clear
'確認元の値が空欄(値無し)の場合
ElseIf ConfValue = "" Then
'それ以外の場合
Else
'確認元の値を現在の行の値に置き換える
ConfValue = ws.Cells(i, 1).Value
End If
Next
End Sub