消すのが怖いなら「非表示」が正解!Excel VBAで叶える安全な重複データ対策

【業務効率化】VBA
スポンサーリンク

なぜ「削除」ではなく「非表示」なのか

大量のデータから手作業で重複行を探し出す作業は、非常に手間と時間がかかりますよね。

「重複データを整理したいけれど、万が一に備えて元のデータは削除せず残しておきたい」

そんなふうにお悩みの方も多いのではないでしょうか?

Excelには標準機能で「重複の削除」機能がありますが、実行すると元のデータそのものが消えてしまいます。後から「やっぱりあのデータ必要だった!」となると大変ですよね。

VBAを活用して対象の行を「非表示」に留める方法であれば、元のデータは安全に保持されます。ワンクリックでいつでも元の表示に戻せるため、安心して作業を進められます。

【業務効率化】VBAの記事を見る 

コピペでOK!重複行を非表示にするVBAコード

以下のコードをVBAエディタに貼り付けるだけで使えます。A列を基準に重複をチェックし、2回目以降に出てきたデータを非表示にします。

Sub HideDuplicateRows()
    ' 画面更新を止めて処理を高速化します
    Application.ScreenUpdating = False
   
    Dim lastRow As Long
    Dim i As Long
    Dim checkRange As Range
   
    ' 1. A列の最終行を取得します
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
   
    ' 2. 下の行から順番にチェックしていきます
    For i = lastRow To 2 Step -1
        ' 基準となるセル
        Set checkRange = Range("A1:A" & i - 1)
       
        ' 3. もし上の行に同じ値があったら、その行を非表示にします
        If Application.WorksheetFunction.CountIf(checkRange, Cells(i, 1).Value) > 0 Then
            Rows(i).EntireRow.Hidden = True
        End If
    Next i
   
    ' 画面更新を再開します
    Application.ScreenUpdating = True
   
    MsgBox "重複行の非表示が完了しました!", vbInformation, "完了"
End Sub

' --- 全ての行を再表示するコード(リセット用) ---
Sub ShowAllRows()
    Cells.EntireRow.Hidden = False
    MsgBox "全ての行を再表示しました。", vbInformation, "リセット完了"
End Sub

使い方3ステップ

  1. Excelで Alt + F11 を押して、VBAの画面を開きます。
  2. 「挿入」→「標準モジュール」を選び、上のコードを貼り付けます。
  3. F5 キーを押すか、Excel画面にボタンを作って登録すれば実行完了です!

最初から100点の完璧なシステムを作る必要はありません。まずは「今日の自分の作業が5分短縮できた!」という成功体験を積み重ねていただければと思います。

このコードを使えば、今まで目を皿のようにして探していた時間がなくなります。

ぜひ試してみてください!

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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