Excel VBA セルに罫線を引く

ExcelVBA-基礎編

今回はセルに罫線を引く方法をご説明します。

マクロの記録で罫線を引いてみると、膨大な量のコードが記録されます。

実際に罫線を引くのに必要なコードを把握すると、意外とシンプルにコーディング出来ます。

セルに罫線を引くには「Borders」コレクションを使用します。

罫線を引く各パターンをサンプルに記載しましたので、説明を飛ばしたい方はサンプルへ飛んでください。

罫線以外のセルの装飾については下記記事をご覧ください。

1.罫線の指定方法

「Border」と「Borders」の違い

「Border」は指定したセルの各辺のオブジェクトです。

Bordersコレクションは「Borderオブジェクト」をまとめたコレクションです。

1辺を操作するには「Borders(辺の指定)」と記述し、セルを囲う4辺をまとめて操作するには「Bordersと辺の指定を省略します。

「Border」オブジェクトのプロパティ

プロパティ説明
Color罫線の色
ColorIndex罫線の色
LineStyle罫線の種類
Weight罫線の太さ
罫線の種類(LineStyle)
定数説明
xlContinuous1実線
xlDash-4115破線
xlDashDot4一点鎖線
xlDashDotDot5二点鎖線
xlDot-4118点線
xlDouble-4119二重線
xlSlantDashDot13斜め斜線
xlLineStyleNone-4142線なし
罫線の太さ(Weight)
定数説明
xlHairline1極細
xlThin2
xlMedium-4138
xlThick4

「Borders」コレクションのプロパティ

プロパティ説明
xlEdgeTop指定範囲セルのの罫線
xlEdgeBottom指定範囲セルの各の罫線
xlEdgeLeft指定範囲セルの各の罫線
xlEdgeRight指定範囲セルの右端の罫線
xlInsideHorizontal指定範囲セルの内側すべての縦線
xlInsideVertical指定範囲セルの内側すべての横線
xlDiagonalDown指定範囲セルの右上がりの斜線
xlDiagonalUp指定範囲セルの右下がりの斜線

2.サンプルコード

セルの上側に罫線

Sub Sample1()

Cells(2, 2).Borders(xlEdgeTop).LineStyle = xlContinuous

End Sub

セルの下側に罫線

Sub Sample2()

Cells(2, 2).Borders(xlEdgeBottom).LineStyle = xlContinuous

End Sub

セルの右側に罫線

Sub Sample3()

Cells(2, 2).Borders(xlEdgeRight).LineStyle = xlContinuous

End Sub

セルの左側に罫線

Sub Sample4()

Cells(2, 2).Borders(xlEdgeLeft).LineStyle = xlContinuous

End Sub

セルの4辺に罫線

Sample1~4を個別に記載せず、下記の方法で4辺一括で罫線を引けます。

Sub Sample5()

Cells(2, 2).Borders.LineStyle = xlContinuous

End Sub

範囲セルの縦線に罫線

Sub Sample6()

Range(Cells(2, 2), Cells(5, 5)).Borders(xlInsideHorizontal).LineStyle = xlContinuous

End Sub

範囲セルの横線に罫線

Sub Sample7()

Range(Cells(2, 2), Cells(5, 5)).Borders(xlInsideVertical).LineStyle = xlContinuous

End Sub

範囲セルの格子罫線

こちらが一番使用頻度が高いかと思います。

Sub Sample8()

Range(Cells(2, 2), Cells(5, 5)).Borders.LineStyle = xlContinuous

End Sub

罫線の太さを変更する

範囲セルの格子を引いて太さを太くします。

Sub Sample9()

With Range(Cells(2, 2), Cells(5, 5)).Borders

    .LineStyle = xlContinuous
    .Weight = xlThick

End With

End Sub

罫線の色を変更する

Sub Sample10()

With Range(Cells(2, 2), Cells(5, 5)).Borders

    .LineStyle = xlContinuous
    .Color = RGB(255, 0, 0) '赤色にします

End With

End Sub

罫線の種類を変更する

Sub Sample11()

With Range(Cells(2, 2), Cells(5, 5)).Borders

    .LineStyle = xlContinuous
    .LineStyle = xlDash '破線にします

End With

End Sub

罫線を消す

Sub Sample12()

Range(Cells(2, 2), Cells(5, 5)).Borders.LineStyle = xlLineStyleNone

End Sub

3.外枠を太くする

外枠を指定して変更する場合は、「BorderAround」を使用します。

構文は「BorderAround LineStyle, Weight, ColorIndex, Color, ThemeColor」と記述します。

引数を指定する場合は「:=」と書きます。

Sub Sample13()

With Range(Cells(2, 2), Cells(5, 5))

    .Borders.LineStyle = xlContinuous '格子罫線を引きます
    .Borders.Color = RGB(255, 0, 0) '赤色にします
    .BorderAround Weight:=xlThick   '外枠を太くします(外枠は黒です)    
    
End With

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