
ねえねえ、コネクタって図形に線をつなげるヤツだよね?

そうそう!図形を動かすと線が付いてきてくれたり便利なんだよ
まずは手動で!図形をつなぐってどうやるの?
コネクタを使って、図形同士をつなげる方法をご紹介します。

コネクタを追加するには:
- [ホーム]タブで「コネクタ ツール」を選択
- マウスカーソルが十字とコネクタの形になります
- つなぎたい図形の接続ポイントにマウスを合わせてクリック
図形にマウスを乗せると接続ポイントが黒■に変わり、
接続ポイントの上にマウスを乗せるとポイントが緑色の□で色付けされる - もう一方の図形の接続ポイントまでドラッグ&ドロップ
図形同士がうまくスナップすると、線の端に緑色の丸が表示されて「接続済み」になります。
補足:線とコネクタって何が違うの?
Visioには「線」と「コネクタ」がありますが、見た目が似ていても機能が違います。
線は普通に線ですがコネクタは図形にくっついているので、図形を動かすとコネクタも動いてくれたりして便利なんです!その辺の違いはまた別記事で書きますね。

とりあえず図形をつなげたいならコネクタが便利!
毎回手でつなぐの、大変じゃない?

図形が10個、20個と増えてくると、1本ずつコネクタを引くのは地味に大変ですよね…。
そして、あとで図形を動かしたときに線が変になったり💦
そこで、VBAを使って、図形同士を自動で接続しちゃいましょう!
Visio VBAなら、自動で接続できる!
VBAを使えば、コネクタを手動でつなぐ手間を省けます。
今回は、2つの図形を自動で直線的に接続する方法を紹介します。

楽するカニ♪
構文
まず、コネクタを配置するにはDrop メソッドを使います。
Page. Drop (Item(“このファイル名.vsdm).Masters.ItemU(“シェイプ名”), xPos, yPos)
※xPos, yPosは指定しない限り単位はインチ
そしてコネクタを図形に接続するにはGlueTo メソッドを使います。
Cell.GlueTo (CellObject)
※CellObjectは接着するポイント
Sample

指定した図形をコネクタで接続するサンプルです。
Shape1とShape2という名前の図形を用意して下さい
コード
Sub ConnectShapesWithConnector()
Dim sh1 As Visio.Shape
Dim sh2 As Visio.Shape
Dim shpC As Visio.Shape
' 接続する図形
Set sh1 = ActivePage.Shapes("Shape1") ' 例: 図形1
Set sh2 = ActivePage.Shapes("Shape2") ' 例: 図形2
' コネクタをドロップ(コネクタ形状をページに配置)
Set shpC = ActivePage.Drop(Application.Documents.Item("このファイル名.vsdm").Masters.ItemU("Dynamic connector"), 0, 0)
' コネクタを接続ポイントに接続(Connections.X1を使用)
shpC.Cells("BeginX").GlueTo sh1.Cells("Connections.X1") ' Shape1の接続ポイント
shpC.Cells("EndX").GlueTo sh2.CellsU("Connections.X2") ' Shape2の接続ポイント
End Sub
※このファイル名は今コネクタを描こうとしている、このファイルの名前です。
実行結果

接続されました。
まとめ
- コネクタは図形同士をつなぐ「賢い線」!
- VBAを使えば、図形の接続を一瞬で自動化できる
- 今回は「2つの図形を直線で自動接続」する方法まで紹介しました♪

楽できそうな気がしてきた~

まずは接続するところまで~細かい説明は別記事を確認してね