手でつなぐのはもう卒業?Visioでコネクタを扱う方法

VisioBAで書式の取得設定をしよう VBA

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

そうそう!図形を動かすと線が付いてきてくれたり便利なんだよ

まずは手動で!図形をつなぐってどうやるの?

コネクタを使って、図形同士をつなげる方法をご紹介します。

コネクタを追加するには:

  1. [ホーム]タブで「コネクタ ツール」を選択
  2. マウスカーソルが十字とコネクタの形になります
  3. つなぎたい図形の接続ポイントにマウスを合わせてクリック
    図形にマウスを乗せると接続ポイントが黒■に変わり、
    接続ポイントの上にマウスを乗せるとポイントが緑色の□で色付けされる
  4. もう一方の図形の接続ポイントまでドラッグ&ドロップ

図形同士がうまくスナップすると、線の端に緑色の丸が表示されて「接続済み」になります。

補足:線とコネクタって何が違うの?

Visioには「線」と「コネクタ」がありますが、見た目が似ていても機能が違います。
線は普通に線ですがコネクタは図形にくっついているので、図形を動かすとコネクタも動いてくれたりして便利なんです!その辺の違いはまた別記事で書きますね。

とりあえず図形をつなげたいならコネクタが便利!

毎回手でつなぐの、大変じゃない?

図形が10個、20個と増えてくると、1本ずつコネクタを引くのは地味に大変ですよね…。
そして、あとで図形を動かしたときに線が変になったり💦
そこで、VBAを使って、図形同士を自動で接続しちゃいましょう!

Visio VBAなら、自動で接続できる!

VBAを使えば、コネクタを手動でつなぐ手間を省けます。
今回は、2つの図形を自動で直線的に接続する方法を紹介します。

楽するカニ♪

構文

まず、コネクタを配置するにはDrop メソッドを使います。

Page. Drop (Item(“このファイル名.vsdm).Masters.ItemU(“シェイプ名”), xPosyPos)
xPosyPosは指定しない限り単位はインチ

そしてコネクタを図形に接続するには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つの図形を直線で自動接続」する方法まで紹介しました♪

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

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

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