2017-03-01 6 views

答えて

0

アイデアのようなものです。これは、全体のソリューションではありませんが、あなたはそれから開始し、マジックナンバーなどを除去することで、自分自身を構築することができます...

Option Explicit 

Public Sub SortingBorders() 

    Dim rngMyRng As Range 
    Dim rngCell  As Range 

    Set rngMyRng = Range("A1:A20") 
    Call RemoveAllBorders(rngMyRng) 

    For Each rngCell In rngMyRng 
     If rngCell <> rngCell.Offset(1, 0) Then 
      Range(rngCell.Offset(1, 0), rngCell.Offset(1, 5)).Borders(xlEdgeTop).LineStyle = xlContinuous 
     End If 
    Next rngCell 

End Sub 

Public Sub RemoveAllBorders(rngMyRng As Range) 

    With rngMyRng 
     .Borders(xlDiagonalDown).LineStyle = xlNone 
     .Borders(xlDiagonalUp).LineStyle = xlNone 
     .Borders(xlEdgeLeft).LineStyle = xlNone 
     .Borders(xlEdgeTop).LineStyle = xlNone 
     .Borders(xlEdgeBottom).LineStyle = xlNone 
     .Borders(xlEdgeRight).LineStyle = xlNone 
     .Borders(xlInsideVertical).LineStyle = xlNone 
     .Borders(xlInsideHorizontal).LineStyle = xlNone 
    End With 

End Sub 

これは、あなたが得るものです: enter image description here

ソリューションが回り込ん列1を指定し、条件rngCell <> rngCell.Offset(1, 0)がtrueの場合にのみ境界線を設定します。

+0

ありがとうございます。それは解決策ではありませんが、アイデアは正しいです。それはうまく動作します。ありがとうございました –

関連する問題