VBA 色や太さを指定して罫線を引きます

 今回は指定したセル範囲に 好きな色や太さの罫線を引く 方法を解説します。

アンダーラインを引いてみます

 とりあえず、セル B2 ~ D2 に青いアンダーラインを引いてみます。

 Sub LineTest1()

  '変数を Borderコレクションで宣言
  Dim myborder As Border

  '変数 myborder に Borderオブジェクトを格納
  Set myborder = Range("B2:E2").Borders(xlEdgeBottom)

  With myborder
   .LineStyle = xlContinuous  '実線を指定
   .Weight = xlThick  '太線を指定
   .ColorIndex = 5  '青色を指定

 End With

 このマクロを実行すると次のような太い線が引かれます。

 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 ステートメントに入れて "オブジェクト" として扱えないので、コードの書き方は次のようになります。

 Sub LineTest2()

  With Range("B2:D4").Borders
   .LineStyle = xlContinuous  '実線を指定
   .Weight = xlMedium  '普通の太さを指定
   .Color = RGB(255, 0, 0)  '赤色を指定
  End With

 End Sub

 このプロシージャを実行すると赤い格子線を引いてくれます。

 VBA 赤い格子線
 

BorderAround メソッド

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

 Sub LineTest3()

 Range("B2:D4").BorderAround ColorIndex:=5, Weight:=xlThick

 End Sub

 マクロを実行すると、下の図のような青い外枠線が描かれます。

 VBA 青い外枠線
 ≫ VBA 辞典メニューに戻って他の記事も読みなさ~い(← 小春ちゃん口調)

Google広告
スポンサーリンク
スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

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

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください