Shapeを使う - 線を引く(AddLineメソッド)|Excel VBA |
Shapeを用いて線を引くときにはShapesコレクションのAddLineメソッドを使用します。
作成する線の位置は、ワークシートの左上端を基点とした始点と終点の位置をポイント単位で指定します。
構文 Object.AddLine(BeginX, BeginY, EndX, EndY)
次のサンプルは、セル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