HOME > 即効テクニック > Excel VBA > > Shapeを使う - 線を引く(AddLineメソッド)

Shapeを使う - 線を引く(AddLineメソッド)|Excel VBA

図形操作関連のテクニック

Shapeを使う - 線を引く(AddLineメソッド)

(Excel 2000/2002/2003/2007/2010/2013/2016)

Shapeを用いて線を引くときにはShapesコレクションのAddLineメソッドを使用します。
作成する線の位置は、ワークシートの左上端を基点とした始点と終点の位置をポイント単位で指定します。

構文 Object.AddLine(BeginX, BeginY, EndX, EndY)

設定項目
内容
Object
Shapesコレクションオブジェクト[省略不可]
BeginX
左上隅を基点とした線の始点のX座標[省略不可]
BeginY
左上隅を基点とした線の始点のY座標[省略不可]
EndX
左上隅を基点とした線の終点のX座標[省略不可]
EndY
左上隅を基点とした線の終点のY座標[省略不可]

次のサンプルは、セルB2からJ2までの直線を描画します。
ここでは、セルの位置(Left、Topプロパティなど)を使用し、始点と終点を指定しています。

また、直線の10ポイント下に赤色・太さ1.5ポイントの矢印線を描画します。
AddLineメソッドで描画した線に書式を設定するには、ShapeオブジェクトのLineプロパティを使用してLineFormatオブジェクトを取得し、プロパティを設定します。

Sub Sample()
    Dim rngStart As Range, rngEnd As Range
    Dim BX As Single, BY As Single, EX As Single, EY As Single
    
    'Shapeを配置するための基準となるセル
    Set rngStart = Range("B2")
    Set rngEnd = Range("J2")
    
    'セルのLeft、Top、Widthプロパティを利用して位置決め
    BX = rngStart.Left
    BY = rngStart.Top
    EX = rngEnd.Left + rngEnd.Width
    EY = rngEnd.Top
    
    '直線
    ActiveSheet.Shapes.AddLine BX, BY, EX, EY
    
    '赤色・太さ1.5ポイントの矢印線
    With ActiveSheet.Shapes.AddLine(BX, BY + 10, EX, EY + 10).Line
        .ForeColor.RGB = vbRed
        .Weight = 1.5
        .EndArrowheadStyle = msoArrowheadTriangle
    End With
End Sub