Excel VBA_罫線を設定する方法について
この記事では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