HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > セル範囲の罫線を参照する(Bordersプロパティ)

即効テクニック

セル操作関連のテクニック

セル範囲の罫線を参照する(Bordersプロパティ)

(Excel 2000)
セル範囲の罫線を表すBordersコレクションオブジェクトを参照します。BordersコレクションオブジェクトはRangeオブジェクトの下位オブジェクトになります。アイテムを指定しない場合には、個々のセルを囲む4本の罫線を参照します。

 構文  Object.Borders     取得のみ

 設定項目         内容
  Object           Range, Styleオブジェクト

次のサンプルは、セル範囲B2〜E8の個々のセルを囲む罫線を、全て同じ状態に設定します。
●サンプル1●
Sub BordersSamp1()

 With Range("B2:E8").Borders
    .LineStyle = xlContinuous  '---罫線の種類
    .Value = xlContinuous      '---罫線の種類
    .Weight = xlThick          '---罫線の太さ
    .Color = RGB(0, 100, 0)    '---RGB値で色を指定
    .ColorIndex = 10           '---カラーパレットの色で指定
    End With

End Sub
個々のアイテムを参照し、より複雑に罫線を引くにはItemプロパティを使用します。Itemプロパティの引数には次の表の定数を使用します。

・BordersコレクションのItemプロパティで使用する定数(XlBordersIndexクラス)
定数               値      内容
xlDiagonalDown      5      単体セルに右下がりの斜線
xlDiagonalUp        6      単体セルに右上がりの斜線
xlEdgeBottom        9      セル範囲の下端の横線
xlEdgeLeft          7      セル範囲の左端の縦線
xlEdgeRight         10     セル範囲の右端の縦線
xlEdgeTop           8      セル範囲の上端の横線
xlInsideHorizontal  12     セル範囲の上下端以外の横線
xlInsideVertical    11     セル範囲の左右端以外の縦線

これを利用し、データの入力されている範囲に、範囲の外周と外周以外で種類の違う罫線を引くコードは、次のようになります。
●サンプル2●
Sub BordersSamp2()

 With Range("B2").CurrentRegion.Borders '--セルB2のアクティブセル領域が対象
     .LineStyle = xlContinuous          '--アイテムを指定せず、罫線の設定
     .Weight = xlMedium
     .ColorIndex = xlAutomatic
    With .Item(xlInsideHorizontal)      '--上下端以外の横線の設定
        .LineStyle = xlDash
        .Weight = xlHairline
        .ColorIndex = xlAutomatic
    End With
    With .Item(xlInsideVertical)        '--左右端以外の横線の設定
        .LineStyle = xlDash
        .Weight = xlHairline
        .ColorIndex = xlAutomatic
    End With
 End With

End Sub
上下端、左右端の罫線個々に関して同じ設定を繰り返していたのでは冗長なコードになってしまいますので、アイテムを指定せずに外周の罫線の設定を他の罫線に対しても行い、その後、外周以外の罫線の設定を行っています。
しかし、セル範囲の外周だけに罫線を引きたい場合には、BorderAroundメソッドを使う方が良いでしょう。次のサンプルのように指定します。引数に使用する定数は、Bordersコレクションオブジェクトの各プロパティに指定するものと同じです。
●サンプル3●
Sub BordersSamp3()

    Range("B2").CurrentRegion.BorderAround _
        LineStyle:=xlContinuous, _
        Weight:=xlMedium, _
        ColorIndex:=xlAutomatic

End Sub