🐕

Excel VBA_罫線を設定する方法について

2022/12/30に公開約2,400字

この記事ではVBAで罫線を設定する方法についてを学びます。表に対して罫線を設定する作業は実務でも多くありますが、それを全て手作業で行うと時間がかかります。一度ならまだしも何度も行うようであれば、マクロで処理することを検討するのも良いかもしれません。

Bordersプロパティ

罫線の設定はBorderオブジェクトのLineStyleプロパティで管理されています。デフォルトでは罫線を表示しない設定がされていますので、表示したい場合にはLineStyleプロパティに値を設定することになります。まず基本的な構文は以下です(RangeだけでなくCellsを使っても同じことが可能です。)

Range(範囲).Borders.LineStyle = 罫線の種類

設定できる主な罫線の種類には下記のモノがあります。

線のプロパティ 内容
xlContinuous 実線
xlThick 太線
xlDash 破線
xlDot 点線
xlDouble 二重線
xlNone 線なし

例えばセルB2~B4に実線を設定したコードが下記です。

Range("B2:C2").Borders.LineStyle = xlContinuous

指定したセル範囲の全ての線に罫線が設定されている点に注目して下さい。

罫線に色を設定する

同じくBordersプロパティのColorプロパティによって、罫線に色を指定することができます。

Range(範囲).Borders.Color =

設定できる主な罫線の種類には下記のモノがあります。

線のプロパティ
vbBlack
vbRed
vbBlue
vbGreen
vbYellow
vbWhite

例えばセルB2~B4に赤色を設定したコードが下記です。

Range("B2:C2").Borders.Color = vbRed

罫線を引く箇所を設定

Bordersプロパティでは()内に値を設定することで、罫線を引く箇所を指定することもできます。Bordersプロパティの()内で引数を設定している点に注目して下さい。

Range(範囲).Boders(設定値).Linestyle = 罫線の種類

引数Indexの設定値には下記のモノがあります。

設定値 罫線の位置
xlEdgeTop
xlEdgeBottom
xlEdgeRight
xlEdgeLeft
xlInsideHorizontal セル範囲内側の水平部分
xlInsideVertical セル範囲内側の垂直部分

例えばxlInsideVerticalを設定すると、セル範囲内側の垂直部分に罫線が設定されます(ここではセルB2とC2の間にのみ実線が引かれます。)

Range("B2:C2").Borders(xlInsideVertical).LineStyle = xlContinuous

またxlInsideHorizontalにおいても選択範囲の内側に線が引かれることに注目して下さい。

5行おきに罫線を設定

具体例として5行おきに罫線を設定してみます。セル単体ではなく範囲を指定する必要があるので、Resizeプロパティを使用している点に注目して下さい。

' 表の1番上に実線を設定する
Range("B2:C3").Borders.LineStyle = xlContinuous
' 点線と実線を繰り返し処理で設定
Dim i As Long
Dim 行間隔 As Long
行間隔 = 3
For i = 3 To 20 Step 行間隔
    ' 行間隔毎に実線を設定
    Range("B" & i).Resize(行間隔, 2).Borders.LineStyle = xlContinuous
    ' 表の内側に点線を設定
    Range("B" & i).Resize(行間隔, 2).Borders(xlInsideHorizontal).LineStyle = xlDot
Next

実行結果は下記のとおりです。xlInsideHorizontalは範囲の内側を選択する設定値なので、(選択範囲が同じであることから)すぐ上の実線の繰り返し処理と重なることはありません。

上記のコードは少し内容を変えればみなさんの実務ですぐに役立てることができるのではないかと思います。ぜひ使ってみて下さい。

Discussion

ログインするとコメントできます