『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【VBA】罫線を引く方法

【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 青いアンダーライン(下線)

【VBA】Bordersコレクション

セルの罫線は Range オブジェクトに属する Bordersコレクションです。Borders コレクションは上下、左右、対角線など個別の Border オブジェクトをまとめたものです。Borders プロパティの引数で「どの場所に線を引くのか」を指定することができます。
 
VBA 罫線の種類 (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 赤い格子線

【VBA】BorderAroundメソッドで外枠線を引く

ところで、Borders コレクションには範囲に外枠線を引かせるオブジェクトが見当たりません。上下左右に一本ずつ線を引けば外枠線になるけど、そんな面倒なことしたくありませんよね。そこで登場するのが BorderAround メソッドです。Range オブジェクトに BorderAround メソッドを使って外枠線を引いてみましょう。

'[VBA] 青色の外枠線を引くプロシージャ
Sub Line_Test_3()
   Range("B2:D4").BorderAround ColorIndex:=5, Weight:=xlThick
End Sub

Line_Test_3() を実行すると、下の図のような青い外枠線が描かれます。
 
VBA 青い外枠線

コメント