つらつら Excel VBA

私の備忘録です。

罫線を引く、消す、有無を比較

罫線について使うプログラムと定数をまとめた。

'選択範囲に格子の線を引く
Selection.Borders.LineStyle = xlContinuous ’実線
Selection.Borders.LineStyle = True '同じ結果
' 選択範囲に中太、青色、格子線
' 線の指定をせずとも罫線が出る不思議。
With Selection.Borders
    .Weight = xlMedium '中
    .Color = vbBlue '青色
End With
'下辺に実線
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
'選択範囲の外周に線を引く
Selection.BorderAround LineStyle:=xlContinuous ', Weight:=xlThick, Color:=vbRed
'選択範囲の罫線を消す。以下全部同じ結果。
Selection.Borders.LineStyle = xlLineStyleNone
Selection.Borders.LineStyle = xlNone
Selection.Borders.LineStyle = False


罫線の有無が混在する複数セルに対して実施するとNullが返るため、比較は慎重に行う。

' A1について下線の有無を比較
If Range("A1").Borders(xlEdgeBottom).LineStyle = xlLineStyleNone Then
    Debug.Print "罫線無い"
Else
    Debug.Print "罫線ある!"
End If

'選択範囲の罫線が格子であるか比較
With Selection.Borders
    If IsNull(.LineStyle) Then
        Debug.Print "罫線が混在"
    Else
        If .LineStyle = xlLineStyleNone Then
            Debug.Print "罫線無い"
        Else
            Debug.Print "罫線ある!"
        End If
    End If
End With


線の種類

定数内容
xlContinuous実線(細)1
xlDash破線-4115
xlDashDot一点鎖線4
xlDashDotDot二点鎖線5
xlDot点線-4118
xlDouble二重線-4119
xlSlantDashDot斜め斜線13
xlLineStyleNone無し-4142


線の太さ

定数内容
xlHairline極細線1
xlThin細線2
xlMedium中太線-4138
xlThick太線4


線の場所。未指定で格子。

定数内容
xlDiagonalDown右下がり斜め線5
xlDiagonalUp右上がり斜め線6
xlEdgeLeft左辺7
xlEdgeTop上辺8
xlEdgeBottom下辺9
xlEdgeRight右辺10
xlInsideVertical内側の垂直線11
xlInsideHorizontal内側の水平線12

以上。