[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 の引数で「どの場所に線を引くのか」を指定することができます。

 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 青い外枠線


 

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)