エクセルVBAマクロを自動作成する無料アプリです。
例として、「重複データに同じ番号を付ける」VBAマクロを作成します。
・任意の複数列の重複も確認できます。
・重複データを削除することもできます。
事例1 複数列のデータの重複を確認する
A列からD列までの4列の値が重複を確認します。
4列の値が重複する行に番号が振られました。
できました😄
アプリの設定
アプリのトップページ
⇒▼重複データ・連番・オートフィル・連続データ
⇒【ツール】重複データに同じ番号を付ける
表示されるVBAコード
アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。
VBAコードを見る
Sub デモ() '重複しているデータに同じ番号を付ける
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止
Dim セル範囲 As String, セル As Range, 右下セル As String
Sheets("Sheet1").Select
'表の最終行を決定
Dim 最終行 As Long
最終行 = Cells(Rows.Count, Range("A1").Column).End(xlUp).Row
セル範囲 = "a2" & ":" & Cells(最終行, Range("d2").Column).Address(False, False)' Dictionaryオブジェクトを作成
Dim 辞書 As Object
Set 辞書 = CreateObject("Scripting.Dictionary")
Dim 行 As Range
For Each 行 In Range(セル範囲).Rows
' キーを作成
Dim キー As Variant
キー = 行.Cells(1, 1) & "|" & 行.Cells(1, 2) & "|" & 行.Cells(1, 3) & "|" & 行.Cells(1, 4)
If 辞書.Exists(キー) Then
' キーが存在する場合、個数を増やす
辞書(キー)("個数") = 辞書(キー)("個数") + 1
Else
' キーが存在しない場合、新しい重複と個数1でキーを追加
Dim アイテム As Object
Set アイテム = CreateObject("Scripting.Dictionary")
アイテム.Add "重複", 辞書.Count + 1
アイテム.Add "個数", 1
辞書.Add キー, アイテム
End If
Next 行
' Dictionaryオブジェクトのアイテムを表示
For Each 行 In Range(セル範囲).Rows
キー = 行.Cells(1, 1) & "|" & 行.Cells(1, 2) & "|" & 行.Cells(1, 3) & "|" & 行.Cells(1, 4)
If 辞書(キー)("個数") > 1 Then
Cells(行.Row, Range("e2").Column).Value = 辞書(キー)("重複")
End If
Next 行
'重複番号を1から再採番
辞書.RemoveAll
For Each 行 In Range(セル範囲).Rows
If Cells(行.Row, Range("e2").Column).Value <> "" Then
' キーを作成
キー = Cells(行.Row, Range("e2").Column).Value
If 辞書.Exists(キー) Then
Cells(行.Row, Range("e2").Column).Value = "重複" & 辞書(キー)
Else
辞書.Add キー, 辞書.Count + 1
Cells(行.Row, Range("e2").Column).Value = "重複" & 辞書(キー)
End If
End If
Next 行
End Sub
※ 表示の「重複」が不要な場合、上記コードの"重複" &を削除します。
事例2 一部の列の重複を確認する
A列のみ重複を確認します。
同じコードが2つ登録されていました。😅
アプリの設定
事例3 重複データを削除する
アプリの設定は、4列(1,2,3,4)で重複をチェックします。
赤枠のうち、1行は2列目の名前が重複しなかったので、削除されませんでした。😄
アプリの設定
ChatGPTで修正
あなたが自動化したい内容と事例が少し異なる場合は、無料で使えるマイクロソフトの「BingAIチャット」でコードを修正します。とても簡単です!