Excel VBAで条件付き書式の重複セルを残しつつ文字列を削除する方法

Excel

Excelで条件付き書式を使って重複データを色付けした後、一番上の重複セル以外の文字列を削除するVBAボタン作成方法について解説します。条件付き書式は保持したまま、文字列だけ削除できます。

準備:対象列と条件付き書式の確認

まず、重複チェック用の条件付き書式が適用されている列を確認します。ここでは1列のみを対象とします。

色は薄赤色など、既存の条件付き書式で設定されたものが分かる状態でOKです。

VBAで重複を判定して上部を残す

以下の手順でVBAを作成します。

  • 開発タブ → Visual Basic → 挿入 → モジュール
  • 対象列のセルを上から順にチェック
  • Dictionaryオブジェクトで重複を記録し、一度出現した文字列はスキップ
  • 2回目以降の文字列はクリア(””を代入)

サンプルコード

Sub RemoveDuplicateKeepTop()
    Dim rng As Range, cell As Range
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    Set rng = Range("A1:A100") '対象列を指定
    For Each cell In rng
        If Not IsEmpty(cell.Value) Then
            If dict.Exists(cell.Value) Then
                cell.ClearContents '重複セルを削除
            Else
                dict.Add cell.Value, True
            End If
        End If
    Next cell
End Sub

このコードはA列のA1:A100を対象とし、最初に出現した値は残し、以降の重複は削除します。

ボタンに割り当てて実行

1. 開発タブ → 挿入 → フォームコントロールのボタンを配置

2. ボタンに上記マクロを割り当てる

3. ボタンを押すと、条件付き書式は残したまま、重複文字列が削除されます

まとめ

条件付き書式で色付けされた重複セルを対象に、VBAで一番上の文字列だけ残し、それ以外を削除する方法を紹介しました。Dictionaryを使うことで重複判定が簡単になり、複数列を使わず1列のみで処理可能です。

コメント

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