Excel VBAでセルに罫線(枠線)を設定する方法を説明します。
罫線を引くためには3つのプロパティを設定すればOKです。3つのプロパティは、場所:Borders、罫線の種類:LineStyle、太さ:Weightになります。
目次
罫線の場所を指定する(Bordersプロパティ)
Bordersプロパティは、Rangeオブジェクトでセルの範囲を設定することで使うことができます。罫線の場所は8つ指定することが可能です。
Range(セル範囲を指定).Borders(場所の設定値)
設定値 | 設定値の内容 |
---|---|
xlEdgeTop | セル範囲の上端の罫線 |
xlEdgeBottom | セル範囲の下端の罫線 |
xlEdgeLeft | セル範囲の左端の罫線 |
xlEdgeRight | セル範囲の右端の罫線 |
xlInsideHorizontal | セル範囲の内側の内側の横罫線 |
xlInsideVertical | セル範囲の内側の内側の縦罫線 |
xlDiagonalDown | セル範囲の内側の右下がりの罫線 |
xlDiagonalUp | セル範囲の内側の右上がりの罫線 |
言葉だと分かりにくいので、図を描くと以下になります。
罫線の種類を指定する(LineStyleプロパティ)
LineStyleプロパティは、Bordersプロパティを設定することで使用することができます。罫線の種類は全部で7種類あります。
Range(セル範囲を指定).Borders(場所の設定値).LineStyle = 種類の設定値
設定値 | 設定値の内容 | 罫線の種類 |
---|---|---|
xlContinuous | 実線 | ![]() |
xlDash | 破線 | ![]() |
xlDashDot | 一点鎖線 | ![]() |
xlDashDotDot | 二点鎖線 | ![]() |
xlDot | 点線 | ![]() |
xlDouble | 二重線 | ![]() |
xlSlantDashDot | 斜破線 | ![]() |
xlLineStyleNone | 線なし |
罫線の太さを指定する(Weightプロパティ)
Weightプロパティは、Bordersプロパティを設定することで使用することができます。線の太さは4つ指定することが可能です。
Range(セル範囲を指定).Borders(場所の設定値).Weight = 太さの設定値
設定値 | 設定値の内容 | 罫線の太さ |
---|---|---|
xlHairline | 細線 | ![]() |
xlThin | 中細の線 | ![]() |
xlMedium | 中太の線 | ![]() |
xlThick | 太線 | ![]() |
罫線を設定するサンプルマクロ
罫線の引き方がわかったところで、マクロですぐに使えるサンプルを作成しました。
全て実線
指定した範囲のセルを全て実線で囲むサンプルです。もっともベーシックな罫線設定になります。
なお、Bordersプロパティを設定しない場合、指定した範囲全てに罫線が設定されます。
copy
Sub Sample1()
With Range("B2:D5").Borders
.LineStyle = xlContinuous
End With
End Sub
外側と内側の縦は実線で横は点線
全て実線と似ていますが、横線が1行目だけ実線で、それ以外は点線に設定するサンプルです。1度全て実線で罫線を引いた後に、1行目以外の内側横線を点線で設定し直しています。ヘッダー部とデータ部を分けたいときに使用します。
copy
Sub Sample2()
With Range("B2:D5").Borders
.LineStyle = xlContinuous
End With
With Range("B3:D5").Borders(xlInsideHorizontal)
.LineStyle = xlDash
End With
End Sub
横線だけ(上端下端は実線で内側は点線)
縦線をなくし、内側の横線を点線にするサンプルです。外資系の~という書籍でこの罫線の引き方がおすすめされていた気がします。
copy
Sub Sample3()
With Range("B2:D5")
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlInsideHorizontal).LineStyle = xlDash
End With
End Sub