VBATips

表範囲の一つ上のセルが同一値の場合、見栄えをよくする【ExcelVBA】

見栄えをよくするために表範囲に格子状に罫線を指定する場合があります。
そこから、値が同一のセルの罫線を消す/文字を見せないようにして、見栄えよくしたい場合があります。

イメージ

aaa111あああaaa111あああ
aaa111いいいいいい
bbb222あああbbb222あああ
bbb333いいいいいい
bbb333うううううう

 

表範囲の一つ上のセルが同一値の場合、見栄えをよくするコード

パーツ化しているため、コピペで対応可能です。

'■一つ上のセルが同一の値の場合、結合セルぽく見せる(見栄えよく見せる/罫線/文字同色で見せない)
Public Function Call_BordersCreate(ws As Worksheet, rng As Range)
    Dim eRow As Long: eRow = Call_CurrentLastRowWS(rng, ws)
    Dim eCol As Long: eCol = Call_CurrentLastColWS(rng, ws)
 
    '■罫線を格子状に引く
    rng.CurrentRegion.Borders.LineStyle = xlContinuous

    Dim r As Long, c As Long
    For r = rng.Row To eRow - 1
        For c = rng.Column To eCol
        '■現在のセルの1行下が同じ値なら罫線を外す/背景色→文字色にする
        If ws.Cells(r, c) = ws.Cells(r + 1, c) Then
            ws.Cells(r + 1, c).Borders(xlEdgeTop).LineStyle = xlNone
            ws.Cells(r + 1, c).Font.Color = ws.Cells(r + 1, c).Interior.Color
        End If
        Next
    Next
End Function

実際の使い方

Public Sub sample()
    Call Call_BordersCreate(ActiveSheet, Range("B2")) 'B2セルを含む表範囲の見栄えをよくする
End Sub

注意点

関連記事

コメント

タイトルとURLをコピーしました