| 
    
     |  | 一列のデータの場合なので逆ですが 改造すれば出来ると思います。
 B列で同じ値が続いたら結合するものです。
 結合解除も載せていきます。
 
 '結合
 Dim c As Range
 Dim r As Range
 Dim MyCell As Range
 Dim cnt As Long
 Application.ScreenUpdating = False
 For Each c In Worksheets(1).Range(Worksheets(1).Cells(1, 2), _
 Worksheets(1).Cells(65536, 2).End(xlUp))
 '1行下のセルと同じ場合
 If c.Value = c.Offset(1).Value Then
 'カウントを1増やす
 cnt = cnt + 1
 '重複開始行のセルを取得
 If cnt = 1 Then Set MyCell = c
 End If
 '1行下のセルと違う値の場合
 If c.Value <> c.Offset(1).Value Then
 'カウントが1以上だったら
 If cnt > 0 Then
 '重複開始行以外のセルクリア
 MyCell.Offset(1).Resize(cnt).ClearContents
 'セル結合
 MyCell.Resize(cnt + 1).MergeCells = True
 'カウントを0に戻す
 cnt = 0
 End If
 End If
 Next
 Application.ScreenUpdating = True
 
 '分解
 Dim c As Range
 Application.ScreenUpdating = False
 For Each c In Worksheets(1).Range("B2", Range("B65536").End(xlUp))
 If c.MergeCells = True Then c.MergeCells = False
 If c.Value = "" Then c.Value = c.Offset(-1).Value
 Next
 Worksheets(1).Range("B2", Range("B65536").End(xlUp)).Borders.Weight = xlThin
 Application.ScreenUpdating = True
 End Sub
 
 |  |