【VBA】罫線を引く方法を徹底解説
今回はVBAでセルに罫線を引く方法を紹介します。
罫線を引く方法は難しくはないのですが、マクロの記録を使うとたくさんコードが出てくるため理解に苦しむかもしれません。
きれいなコードを書きたいという人は、この記事でVBAらしい罫線の引き方を覚えてみてください
この記事は次のような人に向けて書いています。
- VBAで罫線を引く方法を知りたい
- マクロの記録で作ったコードが理解できなくて困っている
- きれいなコードを書きたい
罫線を引く3つの方法
罫線を引く方法は大きく3つに分かれます。
上手に使い分ければ、すっきりとした見やすいプログラムになります。
1.全体に罫線を引く
画像のように全体に罫線を引きたい場合は、次のような1行のコードで済みます。
Sub BorderAll()
'全体に罫線を引く
Range("A1:B2").Borders.LineStyle = xlContinuous
End Sub
Bordersはコレクションなのですが、引数を指定しないと全体に罫線を引くことができます。
2.個別に罫線を引く
全体ではなく個別に罫線を引きたい場合は、Bordersコレクションに引数を指定します。
セルの右側だけに罫線を引きたい、といった場合はこのやり方を取ります。
また斜めの罫線を引きたい場合も、この方法で指定する必要があります。
Sub BorderSeparate()
'個別に罫線を引く
With Range("A1:B2")
.Borders(xlEdgeTop).LineStyle = xlContinuous '範囲内の上側の罫線
.Borders(xlEdgeBottom).LineStyle = xlContinuous '範囲内の下側の罫線
.Borders(xlEdgeLeft).LineStyle = xlContinuous '範囲の左側の罫線
.Borders(xlEdgeRight).LineStyle = xlContinuous '範囲の右端の罫線
.Borders(xlInsideHorizontal).LineStyle = xlContinuous '範囲内のすべてのセルの水平罫線
.Borders(xlInsideVertical).LineStyle = xlContinuous '範囲内のすべてのセルの垂直罫線
.Borders(xlDiagonalDown).LineStyle = xlContinuous '範囲内の各セルの左上隅から右下に移動する罫線
.Borders(xlDiagonalUp).LineStyle = xlContinuous '範囲の各セルの左下隅から右上隅に移動する罫線
End With
End Sub
上のコードのように、どの位置に罫線を引きたいかに応じて入れる引数を変更します。
3.外枠の罫線を引く
画像のように外枠のみ罫線を引く方法もあります。
この場合もコードは1行で済みます。
Sub BorderOutside()
'外側に罫線を引く
Range("A1:B2").BorderAround (xlContinuous)
End Sub
外側の罫線を引く時にはBorderAroundメソッドを使用します。
他の2つと違ってプロパティではなく、メソッドの引数として線のデザインを指定する点に注意してください。
デザインはBorderAround(線種, 太さ, 色)の形で設定できます。
線のデザインの方法(線種/太さ/色)
罫線は線種/太さ/色の3つのデザインを設定することができます。
ここまでのコードも、実はLineStyleプロパティで線種の設定をしています。
ここからは3つのデザインを設定する方法について説明します。
線種の設定方法(LineStyleプロパティ)
線種の設定はLineStyleプロパティで行います。
例:Range(“A1:B2").Borders.LineStyle = xlContinuous
プロパティで設定できる線種は次の表のようになるので、必要に応じて設定してみてください。
名前 | 説明 |
---|---|
xlContinuous | 実線 |
xlDash | 破線 |
xlDashDot | 一点鎖線 |
xlDashDotDot | ニ点鎖線 |
xlDot | 点線 |
xlDouble | 2 本線 |
xlLineStyleNone | 線なし |
xlSlantDashDot | 斜破線 |
太さの設定方法(Weightプロパティ)
線種の設定はWeightプロパティで行います。
例:Range(“A1:B2").Borders.Weight = xlThin
プロパティで設定できる太さは次の表のようになるので、必要に応じて設定してみてください。
名前 | 説明 |
---|---|
xlHairline | 細線 (最も細い罫線) |
xlMedium | 普通 |
xlThick | 太線 (最も太い罫線) |
xlThin | 極細 |
色の設定方法(Color/ColorIndexプロパティ)
色の設定はColor/ColorIndexプロパティで行います。
例:Range(“A1:B2").Borders.Color = vbRed
プロパティで設定できる色は次の表のようなものがあります。
定数 | 色 |
---|---|
vbBlack | 黒 |
vbRed | 赤 |
vbGreen | 緑 |
vbYellow | 黄 |
vbBlue | 青 |
vbMagenta | マゼンタ |
vbCyan | シアン |
vbWhite | 白 |
他にも設定できる色はあります。この表にない色を設定したい場合は、下記の記事を見てください。
また、Colorindexプロパティでも設定できるのですが、おすすめしていません。その理由も下記の記事内で説明しています。