【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 コレクションの引数に何も指定しないようにします。ちょっとややこしいけど、Borders コレクション自体が「格子線を引く」というプロパティを有しているのです。”コレクション” だから、Set ステートメントに入れて “オブジェクト” として扱えないので、コードの書き方は次のようになります。

'[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() を実行すると、下の図のような青い外枠線が描かれます。

 VBA 青い外枠線

コメント

タイトルとURLをコピーしました