- Home ›
- Excel VBA入門 ›
- セルの罫線の設定 ›
- HERE
Borderオブジェクト
セルの罫線に関する情報を管理しているオブジェクトはBorderオブジェクトです。セルに対する罫線を表示する場合には、RangeオブジェクトのBordersプロパティを使ってBorderオブジェクトを取得します。
Dim border1 As Border
Set border1 = Range("A1").Borders(xlEdgeTop)
border1.LineStyle = xlContinuous
まとめて次のように記述しても構いません。
Range("A1").Borders(xlEdgeTop).LineStyle = xlContinuous
Borderオブジェクトは1つ1つの罫線を表しています。単独のセルを対象とした罫線を考えた場合、罫線は上下左右の4つあるだけですが、複数のセル領域を対象と考えた場合、罫線は領域の上下左右以外に領域内の横線と縦線があります。また右あがりの罫線と右下がりの罫線があります。
よって対象となるセルまたはセル範囲に対して罫線の位置は最大で8種類あります。Borderオブジェクトを取り出す場合には、「Borders」プロパティの引数にどの位置の罫線を対象としたBorderオブジェクトを取り出すのかを指定します。
| 定数 | 罫線の位置 |
|---|---|
| xlEdgeTop | 上端 |
| xlEdgeBottom | 下端 |
| xlEdgeLeft | 左端 |
| xlEdgeRight | 右端 |
| xlInsideHorizontal | 内側横線 |
| xlInsideVertical | 内側縦線 |
| xlDiagonalDown | 右下がり斜線 |
| xlDiagonalUp | 右上がり斜線 |
指定した位置の罫線を表すBorderオブジェクトを取り出したら、後は罫線の形状や太さ、色などを指定して線を引きます。これらは次のページから詳しく見ていきます。
サンプルプログラム
では簡単なサンプルで試してみましょう。単独のセルとセル領域に対してそれぞれ上下左右の罫線を表示した場合を確認します。
Sub テスト()
With Range("B2")
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
End With
With Range("B4:D7")
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
End With
End Sub
上記マクロを実行すると次のようになります。
このようにBorderオブジェクトを取り出す領域全体を1つのものと考えて、それに対してどの位置に罫線を引くのかを指定することになります。
( Written by Tatsuo Ikura )
OfficePro