フローチャートや組織図をVBAで作る際、最も重要なのが「図形と図形を矢印でつなぐ」作業です。コネクタを使えば、図形を動かしても矢印が付いてくる便利な図が作成できます。
コードの動作
- シートの左側と右側に2つの円を作成します。
- その2つを「カギ線矢印コネクタ」でつなぎます。
- コネクタをそれぞれの図形の結合点に固定します。
図形をつなぐVBAコード
VBA
Sub ConnectTwoShapes()
Dim shp1 As Shape
Dim shp2 As Shape
Dim myConn As Shape
' 1. 2つの図形を作成
Set shp1 = ActiveSheet.Shapes.AddShape(msoShapeOval, 50, 50, 80, 80)
Set shp2 = ActiveSheet.Shapes.AddShape(msoShapeOval, 250, 150, 80, 80)
shp1.TextFrame2.TextRange.Text = "開始"
shp2.TextFrame2.TextRange.Text = "終了"
' 2. コネクタを作成(カギ線矢印)
Set myConn = ActiveSheet.Shapes.AddConnector(msoConnectorElbow, 0, 0, 0, 0)
' 3. 図形を接続する
' BeginConnect: 始点をshp1の3番目の結合点(右側)へ
' EndConnect: 終点をshp2の1番目の結合点(上側)へ
myConn.ConnectorFormat.BeginConnect shp1, 3
myConn.ConnectorFormat.EndConnect shp2, 1
' 4. コネクタ自体の見た目を設定
myConn.Line.EndArrowheadStyle = msoArrowheadTriangle
myConn.Line.ForeColor.RGB = RGB(255, 0, 0)
MsgBox "コネクタで接続しました。"
End Sub
コードのポイント解説
BeginConnect と EndConnect を使うのがコツです。図形の結合点番号は、標準的な図形だと上が1、左が2、下が3、右が4となっていることが多いですが、図形の種類によって異なります。


コメント