Sub TEST1()
'線を引く
ActiveSheet.Shapes.AddLine 10, 50, 200, 50
End Sub
実行すると、線を引くことができます。
線を引くことができました。
線を引いて選択する
線を引いて選択するには、次のように記載します。
Sub TEST2()
'線を引いて選択
ActiveSheet.Shapes.AddLine(10, 50, 200, 50).Select
End Sub
線を引いて、線を選択することができます。
線を引いて、線を選択することができました。
線を引いて変数に格納
線を引いて変数に格納するには、次のようにVBAコードを記載します。
Sub TEST3()
Dim A
'線を引いて、オブジェクトとして変数に格納
Set A = ActiveSheet.Shapes.AddLine(10, 50, 200, 50)
End Sub
実行すると、線を引くことができます。
線を引いて、線をオブジェクトとして変数に格納できました。
変数に格納できると、作成した変数を使って、線を操作することができるので便利です。
線を引いてスタイルを設定する
線を引いてスタイルを設定してみます。
線の太さと、線の色を変更してみます。
Sub TEST4()
'線を引いて、スタイルを設定
With ActiveSheet.Shapes.AddLine(10, 50, 200, 50).Line
.Weight = 3 '太さ
.ForeColor.RGB = RGB(255, 0, 0) '赤色
End With
End Sub
線を引いて、線の太さや色を設定することができます。
線を引いて、線の太さを「3ポイント」にして、色を「赤色」に設定することができました。
矢印を引く
矢印を引いてみます。
やり方としては、線を引いて、線の終点に「矢印」を設定する、という手順になります。
Sub TEST5()
'矢印を引く
With ActiveSheet.Shapes.AddLine(10, 50, 200, 50).Line
.Weight = 3 '太さ
.ForeColor.RGB = RGB(255, 0, 0) '赤色
.EndArrowheadStyle = msoArrowheadTriangle '終点を矢印
End With
End Sub
実行してみます。
矢印を引くことができました。
線のスタイル
下記のスタイルを設定する方法について、解説します。
線の太さ
線の色
一本線と二重線
実線と点線
始点の矢印
終点の矢印
では、それぞれ解説していきます。
線の太さ
「線の太さ」を設定する場合は、「.Line.Weight」を使います。
Sub TEST6()
'線の太さ
With ActiveSheet.Shapes.AddLine(10, 50, 200, 50).Line
.Weight = 4
End With
End Sub
線の太さを設定することができます。
線の太さを設定できました。
線の色
線の色を設定する場合は、「.Line.ForeColor.RGB」を使います。
Sub TEST7()
'線の色
With ActiveSheet.Shapes.AddLine(10, 50, 200, 50).Line
.ForeColor.RGB = RGB(255, 0, 0)
End With
End Sub
線を赤色に設定できます。
線の色を設定できました。
一本線と二重線
一本線や二重線を設定する場合は、「.Line.Style」を使います。
それぞれ次の値を入力します。
一本線:msoLineSingle
二重線:msoLineThinThin
細線+太線:msoLineThinThick
太線+細線:msoLineThickThin
細線+太線+細線:msoLineThickBetweenThin
VBAコードは、次のようになります。
Sub TEST8()
'線のスタイル
With ActiveSheet.Shapes.AddLine(10, 50, 200, 50).Line
.Weight = 4
.Style = msoLineSingle '一本線
.Style = msoLineThinThin '二重線
.Style = msoLineThinThick '細線+太線
.Style = msoLineThickThin '太線+細線
.Style = msoLineThickBetweenThin '細線+太線+細線
End With
End Sub
Sub TEST12()
Dim X1, Y1, X2, Y2
X1 = Selection.Left '始点の横
Y1 = Selection.Top + Selection.Height / 2 '始点の縦
X2 = Selection.Left + Selection.Width '終点の横
Y2 = Selection.Top + Selection.Height / 2 '終点の縦
With ActiveSheet.Shapes.AddLine(X1, Y1, X2, Y2).Line
.Weight = 3 '太さ
.ForeColor.RGB = RGB(255, 0, 0) '赤
.EndArrowheadStyle = msoArrowheadTriangle '終点を三角
End With
End Sub
セル範囲を選択して、実行します。
選択したセル範囲に、矢印を引くことができます。
選択したセル範囲に、矢印を引くことができました。
ショートカットキーに登録して、すぐに実行できるようにするとさらに便利です。
同じ値を線でつなげる
同じ値を線でつなげるVBAコードは、次のようになります。
Sub TEST13()
Dim X1, Y1, X2, Y2
For i = 1 To 5
For j = 1 To 5
If Cells(i, 1) = Cells(j, 3) Then
X1 = Cells(i, 1).Left + Cells(i, 1).Width '始点の横
Y1 = Cells(i, 1).Top + Cells(i, 1).Height / 2 '始点の縦
X2 = Cells(j, 3).Left '終点の横
Y2 = Cells(j, 3).Top + Cells(j, 3).Height / 2 '終点の縦
ActiveSheet.Shapes.AddLine X1, Y1, X2, Y2 '線を引く
End If
Next
Next
End Sub