エクセルVBAマクロを自動作成する無料アプリです。
例として「重複データに連番をつける」VBAマクロを作成します。
事例 重複しているデータに、連番を付ける
マクロを実行すると、重複データに連番がつきました。
できました(^^)/
アプリの設定
アプリへのリンク ⇒重複データに連番をつける
【ポイント】
■ 重複を確認する列は、飛び飛びの列も指定できます。
表示されるVBAコード
アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。
VBAコードを見る
Sub デモ() '重複データに連番をつける
Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False ' 警告表示を停止
Dim セル範囲 As String, セル As Range
Sheets("Sheet1").Select
'表の最終行を決定
Dim 最終行 As Long
最終行 = Cells(Rows.Count, Range("A2").Column).End(xlUp).Row
セル範囲 = "a2" & ":" & Cells(最終行, Range("d2").Column).Address(False, False)
' Dictionaryオブジェクトを作成
Dim 辞書 As Object, 表 As Variant, 配列 As Variant, 行 As Long, キー As Variant
Set 辞書 = CreateObject("Scripting.Dictionary")
'表(配列)に、セル範囲の値を取り込む
表 = Range(セル範囲).Value
For 行 = LBound(表) To UBound(表)
' キーを作成
キー = 表(行, 1) & "|" & 表(行, 2) & "|" & 表(行, 3) & "|" & 表(行, 4)
If 辞書.Exists(キー) Then
' キーが存在する場合、そのキーを配列に戻し、個数を1増やす
配列 = 辞書.Item(キー)
配列(0) = 配列(0) + 1
辞書.Item(キー) = 配列
Else
' キーが存在しない場合、"個数"と"連番"の配列作成
配列 = Array(1, 0)
辞書.Add キー, 配列
End If
Next 行
' アイテム"個数"が2以上のとき、アイテム"連番"に1を加算して表示
For 行 = LBound(表) To UBound(表)
キー = 表(行, 1) & "|" & 表(行, 2) & "|" & 表(行, 3) & "|" & 表(行, 4)
If 辞書.Item(キー)(0) > 1 Then
配列 = 辞書.Item(キー)
配列(1) = 配列(1) + 1
辞書.Item(キー) = 配列
Cells(Range("E2").Row - 1 + 行, Range("E2").Column).Value = 辞書.Item(キー)(1)
End If
Next 行
End Sub
ChatGPTで修正
あなたが自動化したい内容と事例が少し異なる場合は、無料で使えるマイクロソフトの「BingAIチャット」でコードを修正します。とても簡単です!