| 
    
     |  | こんにちは 
 データセル範囲が大きいと時間が掛かります。
 
 Sub test()
 Dim r As Range
 Dim i As Long
 Dim s As Variant
 With Worksheets("Sheet1")
 For Each r In .Range("A1", .Cells(Rows.Count, 1).End(xlUp))
 s = r.Value
 i = WorksheetFunction.CountIf(.UsedRange, s)
 Select Case i
 Case 2
 r.Insert xlShiftToRight
 r.Offset(, -1).Value = "★"
 Case 3
 r.Insert xlShiftToRight
 r.Offset(, -1).Value = "★★"
 End Select
 Next
 End With
 End Sub
 
 
 ▼hacuen さん:
 >VBA初心者です。
 >以下の様なマクロを作りたいです、ご教授お願いします。
 >
 >(A.1)セルの値を取得
 >→取得した値でシート全体検索
 >ケース1.(A.1)と同じ値が1つ(全体で2つ)→★の入ったセルを(A.1)セルの前に挿入
 >ケース2.(A.1)と同じ値が2つ(全体で3つ)→★★の入ったセルを(A.1)セルの前に挿入
 >ケース3.(A.1)と同じ値が無い(全体で1つ)→取得したセルの一つ下のセルの値を取得し、再度検索実行
 >ケース4.(A.X)セルの値が無い→end
 >
 >ケース4.になるまでは永久ループ的な感じです。
 >
 >結果としては同じデータが2つあると★1つ、3つなら★2つが付くようにしたいです。
 >case文で作ろうとしたのですが、検索に引っかかった件数=変数として抽出するやり方が解りませんでした。
 >
 >どうかよろしくお願いします。
 
 |  |