エクセルで選択した3つの表を比較して重複セルの色を変えるマクロボタンを作る方法

エクセル

あなたはエクセルの表で重複チェックするのが面倒だと思ったことはありませんか?

商品のデータをチェックしたり、統計データを比較したり、見比べてチェックするのは大変ですよね。

表が2つなら目視でがんばれても、3つあったら、もう大変です。

エクセルのマクロを使えば、比べる表が3つあっても、重複チェックが簡単にできます。

今回は「エクセルで選択した3つの表を比較して重複セルの色を変えるマクロボタンを作る方法」を紹介します。

エクセルで選択した3つの表を比較して重複セルの色を変えるマクロボタンを作る方法

エクセルで選択した3つの表を比較して重複セルの色を変えるマクロボタンを作る方法です。

今回は、下のような3つの表で重複チェックする例を紹介します。

マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.「新規作成」をクリック

3.コード入力画面が開く

4.コードを入力

コードを入力します。

3つの表の選んで、重複を確認して、重複箇所を黄色にする、という意味です。

赤枠部のコードです。

    Dim rng1 As Range
    Dim rng2 As Range
    Dim rng3 As Range
    Dim cell1 As Range
    Dim cell2 As Range
    Dim cell3 As Range
    Dim duplicateCount As Integer
    Dim foundDuplicate As Boolean
    
    ' ユーザーに最初の範囲を選択させる
    On Error Resume Next
    Set rng1 = Application.InputBox("比較する最初の表を選択してください:", "表1の選択", Type:=8)
    On Error GoTo 0
    
    If rng1 Is Nothing Then
        MsgBox "表1が選択されていません。マクロを終了します。", vbExclamation
        Exit Sub
    End If
    
    ' ユーザーに2番目の範囲を選択させる
    On Error Resume Next
    Set rng2 = Application.InputBox("比較する2番目の表を選択してください:", "表2の選択", Type:=8)
    On Error GoTo 0
    
    If rng2 Is Nothing Then
        MsgBox "表2が選択されていません。マクロを終了します。", vbExclamation
        Exit Sub
    End If
    
    ' ユーザーに3番目の範囲を選択させる
    On Error Resume Next
    Set rng3 = Application.InputBox("比較する3番目の表を選択してください:", "表3の選択", Type:=8)
    On Error GoTo 0
    
    If rng3 Is Nothing Then
        MsgBox "表3が選択されていません。マクロを終了します。", vbExclamation
        Exit Sub
    End If
    
    ' 重複のカウントをリセット
    duplicateCount = 0
    
    ' 最初の範囲内の各セルをループ
    For Each cell1 In rng1
        ' 2番目の範囲内の各セルと比較
        For Each cell2 In rng2
            If cell1.Value = cell2.Value And cell1.Value <> "" Then
                ' 3番目の範囲内の各セルと比較
                foundDuplicate = False
                For Each cell3 In rng3
                    If cell1.Value = cell3.Value Then
                        ' 重複している場合、セルを黄色にする
                        cell1.Interior.Color = RGB(255, 255, 0)
                        cell2.Interior.Color = RGB(255, 255, 0)
                        cell3.Interior.Color = RGB(255, 255, 0)
                        duplicateCount = duplicateCount + 1
                        foundDuplicate = True
                        Exit For
                    End If
                Next cell3
                If foundDuplicate Then Exit For
            End If
        Next cell2
    Next cell1
    
    ' 重複の数をメッセージボックスで表示
    MsgBox "重複したセルは " & duplicateCount & " 件ありました。", vbInformation

コードを入力したら、コードの入力画面を閉じて下さい。

5.ボタンができた →ボタンをクリック

ボタンができたら、ボタンをクリックします。

6.比較する最初の表を選択する

マウスや入力で比較する最初の表を選択します。

ここでは左側の青枠で囲った部分を選択しました。

7.比較する2番目の表を選択する

次にもう一つの比較する表を選びます。

ここでは真ん中の青枠で囲った部分を選択しました。

8.比較する3番目の表を選択する

3番目の表を選択します。

ここも青枠部を選択しました。

9.重複セルが黄色になり、数もカウントされた

重複セルが黄色になりました。

重複セルは34件あるのもわかりました。

これなら重複が一目でわかっていいですね!

確認

表が3つあって、重複セルは黄色になったっぽいけど、本当に重複がチェックされているか、確認しておこうと思います。

まず重複しているセルを抜き出し、昇順で並び替えました。

表1の中に重複があるようです。

次に「データ」 →「重複の削除」で表1の重複を削除します。

表1を選択して、OKをクリック。

重複が削除されます。

ちゃんと表1~3の重複が黄色セルに変わったのがわかりましたね!

まとめ

エクセルで選択した3つの表を比較して重複セルの色を変えるマクロボタンを作る方法のまとめです。

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.新規作成をクリック

3.コードを入れる画面が出る

4.コードを入力

5.ボタンができた →ボタンをクリック

6.比較する最初の表を選択する

7.比較する2番目の表を選択する

8.比較する3番目の表を選択する

9.重複セルが黄色になり、数もカウントされた

これで、比べる表が3つあっても重複チェックが簡単になりました。

コメント

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