あなたはエクセルの表で重複チェックするのが面倒だと思ったことはありませんか?
重複がわかっても、どれとどれが重複なのか、それをマーキングするのが大変ですよね。
エクセルのマクロを使えば、重複チェックして、重複項目ごとに色を変えられるので、チェックが簡単にできます。
今回は「エクセルで表を比較して重複セルの項目ごとに色を変えるマクロボタンを作る方法」を紹介します。
エクセルで表を比較して重複セルの項目ごとに色を変えるマクロボタンを作る方法
エクセルで表を比較して重複セルの項目ごとに色を変えるマクロボタンを作る方法です。
今回は、下のような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
Dim colorIndex As Integer
Dim colorArray As Variant
' 色の配列を定義
colorArray = Array(RGB(255, 255, 0), RGB(255, 0, 0), RGB(0, 255, 0), RGB(0, 0, 255), RGB(255, 0, 255), RGB(0, 255, 255))
' ユーザーに最初の範囲を選択させる
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
colorIndex = 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 = colorArray(colorIndex Mod UBound(colorArray) + 1)
cell2.Interior.Color = colorArray(colorIndex Mod UBound(colorArray) + 1)
cell3.Interior.Color = colorArray(colorIndex Mod UBound(colorArray) + 1)
duplicateCount = duplicateCount + 1
foundDuplicate = True
colorIndex = colorIndex + 1 ' 次の色に変更
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件あるのもわかりました。
これなら重複が一目でわかっていいですね!
重複する項目の色を100種類に変える
どれとどれが重複しているか分かったのはいいですが、色が少なくて、違う項目なのに同じ色になってしまっていたので、色を100種類用意してみました。
コードを書き換えたので、再びボタンを押し、比較する表を3つ選びます。
さっきと同じで34件重複しました。
色は違うようですが、本当に100種類違う色になったかを確認しやすくするため、サンプルの表を変えました。
1~100まで、ランダムに数字を入れて試してみます。
ボタンを押して、マクロ起動。
また表を3つ選びます。
重複したセルは18件でした。
似た系統の色が多いように感じます。
緑系、紫系、うすだいだい系・・・。
本当に100種類違う色かを再度確認するため、表を1~111まで3つ並べて比較することにしました。
マクロ起動!
重複は111件ありました。
緑系の色を比べてみます。
同じ緑系ですが、ちょっとずつ色が違うのがわかりました。
RGBがちょっとずつですが。
パッと見では判別は難しいかもしれません。
今度は、パッと見でわかるように、ランダムで色を選ぶようにしてみました。
色々省いて、マクロを起動!
111項目を並べてみます。
これなら100色、同系色の色はありつつも、最初よりはずっとパッと見でわかりやすくなったかと思います。
やれやれ。
まとめ
エクセルで選択した3つの表を比較して重複セルの色を変えるマクロボタンを作る方法のまとめです。
1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック
2.新規作成をクリック
3.コードを入れる画面が出る
4.コードを入力
5.ボタンができた →ボタンをクリック
6.比較する最初の表を選択する
7.比較する2番目の表を選択する
8.比較する3番目の表を選択する
9.重複セルの色が変わり、数もカウントされた
これで、表のどの項目と、どの項目が重複しているのか、チェックが簡単になりました。
コメント