【ExcelVBA・マクロ】図形同士を矢印(コネクタ)で自動接続する方法

図形同士を矢印(コネクタ)で自動接続する方法 ExcelVBA

フローチャートや組織図をVBAで作る際、最も重要なのが「図形と図形を矢印でつなぐ」作業です。コネクタを使えば、図形を動かしても矢印が付いてくる便利な図が作成できます。

図形の自動作成(矢印コネクタ接続)
スポンサーリンク
スポンサーリンク

コードの動作

  1. シートの左側と右側に2つの円を作成します。
  2. その2つを「カギ線矢印コネクタ」でつなぎます。
  3. コネクタをそれぞれの図形の結合点に固定します。

図形をつなぐ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となっていることが多いですが、図形の種類によって異なります。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました