即効テクニック |
セル範囲の罫線を表す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