【VBA】セルに罫線(下線・二重線・外枠線)を引く方法
今回は VBA で指定したセル範囲に好きな色や太さの罫線を引く方法を解説します。とりあえず、セル B2:D2 に青いアンダーラインを引いてみます。
'[VBA] セルB2:D2に青色アンダーラインを引くプロシージャ
Sub Line_Test_1()
'変数をBorderコレクションで宣言
Dim myborder As Border
'変数myborderにBorderオブジェクトを格納
Set myborder = Range("B2:E2").Borders(xlEdgeBottom)
With myborder
.LineStyle = xlContinuous '実線を指定
.Weight = xlThick '太線を指定
.ColorIndex = 5 '青色を指定
End With
End Sub
Line_Test_1() を実行すると次のような太い罫線が引かれます。

【VBA】Bordersコレクション
セルの罫線は Range オブジェクトに属する Bordersコレクションです。Borders コレクションは上下、左右、対角線など個別の Border オブジェクトをまとめたものです。Borders プロパティの引数で「どの場所に線を引くのか」を指定することができます。

罫線の種類
線の種類は Border オブジェクトの LineStyle プロパティ で指定します。
| Borders.LineStyle Property | 線の種類 |
|---|---|
| xlContinuous | 細い実線 |
| xlDash | 破線 |
| xlDashDot | 一点鎖線 |
| xlDashDotDot | 二点鎖線 |
| xlDot | 点線 |
| xlDouble | 二重線 |
| xlSlantDashDot | 斜破線 |
| xlLineStyleNone | 無し |
罫線の太さ
線の太さは Weight プロパティ で指定します:
| Borders.Weight Property | 線の太さ |
|---|---|
| xlHairline | 極細 |
| xlThin | 細い |
| xlMedium | 中間 |
| xlThick | 太い |
罫線の色
線の色は Color プロパティ、もしくは ColorIndex プロパティで指定します。主な色の種類は次の通りです。
| Color Property | ColorIndex Property | 色 |
|---|---|---|
| RGB(255,0,0) | 3 | 赤 |
| RGB(0,255,0) | 4 | 緑 |
| RGB(0,0,255) | 5 | 青 |
| RGB(255,255,0) | 6 | 黄 |
格子線
指定したセル範囲に格子線を引きたいときは、Borders コレクションの引数に何も指定しないようにします。
'[VBA] 赤色の格子線を引くプロシージャ
Sub Line_Test_2()
With Range("B2:D4").Borders
.LineStyle = xlContinuous '実線を指定
.Weight = xlMedium '普通の太さを指定
.Color = RGB(255, 0, 0) '赤色を指定
End With
End Sub
Line_Test_2() を実行すると赤い格子線を引いてくれます。

【VBA】BorderAroundメソッドで外枠線を引く
ところで、Borders コレクションには範囲に外枠線を引かせるオブジェクトが見当たりません。上下左右に一本ずつ線を引けば外枠線になるけど、そんな面倒なことしたくありませんよね。そこで登場するのが BorderAround メソッドです。Range オブジェクトに BorderAround メソッドを使って外枠線を引いてみましょう。
'[VBA] 青色の外枠線を引くプロシージャ
Sub Line_Test_3()
Range("B2:D4").BorderAround ColorIndex:=5, Weight:=xlThick
End Sub
Line_Test_3() を実行すると、下の図のような青い外枠線が描かれます。

コメント