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オブジェクトを取り出したら、後は罫線の形状や太さ、色などを指定して線を引きます。これらは次のページから詳しく見ていきます。

サンプルプログラム

では簡単なサンプルで試してみましょう。単独のセルとセル領域に対してそれぞれ上下左右の罫線を表示した場合を確認します。

testcellborder1.bas

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つのものと考えて、それに対してどの位置に罫線を引くのかを指定することになります。

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )