| 
    
     |  | Pちゃん さん、こんばんわ。 
 >ただ新宿-新宿-新宿-新宿-世田谷区というパターンもあります。
 >区に対するデータの行はそのままで同じ区の行のみ結合したいのですが
 >3行ごとに比較して結合する方法がわかりません。
 
 3行ずつとばして比較して、ベタにくっつけていきます。
 
 Sub test2()
 Dim r1 As Long, r2 As Long, r3 As Long
 '一番下の区の入ったセルを判定
 Rmax = Range("A65536").End(xlUp).Row
 r1 = Rmax  '開始データ(区の入っている一番下の行)
 r2 = r1 - 3 '比較対象データ
 r3 = r1 + 2 '結合する最下行
 '警告無視
 Application.DisplayAlerts = False
 '作業中のシートが対象
 With Application.ActiveSheet
 Do
 If r1 < 3 Then
 .Range(.Cells(r1, 1), .Cells(r3, 1)).Merge
 Exit Do '結合して終了(今回のサンプル例のように2行目が1レコードめの場合)
 ElseIf .Cells(r1, 1).Value <> .Cells(r2, 1).Value Then
 .Range(.Cells(r1, 1), .Cells(r3, 1)).Merge
 r3 = r1 - 1 '結合する下行番号を入替
 End If
 r1 = r1 - 3: r2 = r1 - 3
 Loop
 End With
 '警告再開
 Application.DisplayAlerts = True
 End Sub
 
 こんな感じです。
 
 |  |