更新日:、 作成日:

VBA セルの罫線について

はじめに

Excel VBA マクロのセルの罫線を紹介します。

Border オブジェクトから、罫線の色や種類、太さなどを取得または設定できます。

Borders コレクションから、セルの罫線 (Border) を取得できます。

Borders(xlEdgeTop) から、上側の罫線 (Border) を取得できます。

罫線を取得するには「セルの罫線を取得する」をご覧ください。
罫線を引くには「セルに罫線を引く」をご覧ください。

Border オブジェクト

セルの上側や下側といった一辺の罫線を操作するには Border オブジェクトを使用します。

Border から次の値を取得または設定できます。

プロパティ名 説明
Color罫線の色
ColorIndex罫線の色番号
LineStyle罫線の種類
Weight罫線の太さ

上側や下側の Border は Borders コレクションから取得して操作します。

Borders コレクション

Borders からセルの全ての辺の罫線を取得できます。

上側の罫線を取得するには Borders(xlEdgeTop) を入力します。

Dim b As Border
Set b = Range("B2").Borders(xlEdgeTop) ' セル「B2」の上側の罫線を取得
Debug.Print(b.Color)      ' 色
Debug.Print(b.ColorIndex) ' 色番号
Debug.Print(b.LineStyle)  ' 種類
Debug.Print(b.Weight)     ' 太さ

取得したい罫線を指定するには次の値を指定します。組み合わせて使用することはできません。

名前 説明
xlEdgeTop上側の罫線
xlEdgeBottom下側の罫線
xlEdgeLeft左端の罫線
xlEdgeRight右端の罫線
xlInsideHorizontalすべての水平罫線
(2 行以上のセルの範囲を指定している必要があります)
xlInsideVerticalすべての垂直罫線
(2 列以上のセルの範囲を指定している必要があります)
xlDiagonalDown各セルの右下がりの罫線
xlDiagonalUp各セルの右上がりの罫線

罫線は次の場所を示しています。

1
2
3
4

隣接するセルの罫線は同じものです。セル「A1」の下側に罫線を引くと、セル「A2」の上側に罫線が引かれたことになります。

Borders も Border と同じプロパティを持っています。

Borders に対して値を設定するときは、指定した範囲の各セルの上下左右の罫線に対して行われます。

Range("B2:D4").Borders.LineStyle = xlContinuous ' 上下左右に罫線を引く
5

値を取得するときは、各セルの上下左右の辺の罫線の値が同じであれば、その値を取得します。一つでも違う値があれば Null を取得します。