
あ、またコネクタが勝手に曲がった・・・

敵(コネクタ)を知れば良い感じに操作デキル!かもよ
Visioで図を描いていると、図形と図形をつなぐ「線(コネクタ)」が、自分で引いた覚えのない方向に曲がったり、ヘンな場所に伸びたりして、「もうっ!」とイライラしたことはありませんか?
この記事では、そんな線の曲がり方の基本や、思い通りに線を引くための簡単なコツを分かりやすく解説します!
コネクタってなんで勝手に曲がるの?

Visioのコネクタは、図形と図形をスムーズにつなぐための線ですが、
実は自動でルートを決める機能がついています。
一般的な線とVisioの線の違いは、こちらの記事で詳しく説明しているので、興味があればそちらも見てみてくださいね。
ここの「自動でおまかせ」機能、普段はとっても便利なんですが、たまにこんな「困ったこと」が起きる原因にもなります。
- 描きたい方向じゃないところに線が曲がる
- 他の図形をムリヤリ避けて、線がグニャグニャになる
- 図形をちょっと動かしただけで、線が勝手に形を変えちゃう
これらは全部、Visioが「一番短いルート」とか「ぶつからないルート」をがんばって探してくれているからなんです。

そうなんだ。。。でも困るな
コネクタが曲がるルールを知れば思い通りに!
Visioの線が曲がる場所は、Visioが自動で決める場合と、自分でコントロールできる場合があります。
- Visioにおまかせパターン
Visioが図形の位置に応じて自動で曲げる場所を決めます。
図形を動かすとベンドポイントも変わってしまうのが特徴です。 - 自分で調整するパターン
線の途中をドラッグすると、自分で曲がる位置を作れます。
思い通りの曲げ方に調整できるので、意図しないルートにならず安心です。
コネクタツールでつなげる時は「1.のパターン」なので、勝手に曲がって欲しくなければ自分でつなぎ変えましょう!

やり方はこの後3つの操作テクニックでご紹介します
思い通りに線を描くための3つの操作テクニック
Visioでコネクタを自在に操作するには、次の3つのポイントを覚えておくと便利です:

待ってました!
1. 曲がる場所をドラッグで動かす!

コネクタを選ぶと、緑の小さな四角が出ます。
この上にマウスをのせるとカーソルが両矢印に変わり、ドラッグして位置を調整できます。
2. 追加・削除も自由に

コネクタを選び緑の小さな四角をドラックすると、曲がる場所を増やすこともできます。
逆に直線になるようにドラックして角を削除することもできます。
3. 線を図形の「特定の接続ポイント」に固定する!

「線が勝手に動いちゃう件」実はコネクタを図形にくっつける方法を変えることで、この悩みを解決できます!
コネクタの曲がる場所を固定するには、線の端を図形の「接続ポイント」につなくことがポイント。図形の真ん中に接続されていると、動いてしまうので接続ポイントにつなぎ変えます。やりかたとしては、
- まず、線を移動させたくない方の線の端をドラッグします。
- その線の端を、接続したい図形の接続ポイントの上に持っていきます。
- 「接続ポイントへ接着」のようなメッセージが表示されたら、マウスボタンを放します。
こうすることで、線がその特定の接続ポイントにしっかりと接続されます。図形を動かしてもコネクタはその接続ポイントから離れず、形が勝手に大きく変わるのを防ぎやすくなります。
接続ポイントについて詳しくは、別の記事で解説しているから、そちらもチェックしてみてね!
Visio VBAで曲がる位置を簡単に追加する方法

以下のコードでは、選択中のコネクタの曲がる位置を等間隔に揃えます。
コネクタを上から順番に選択して実行して下さい。
Sub test1()
Dim ishp, sshp, shp As Visio.Shape
Set sshp = ActiveWindow.Selection
icnt = sshp.Count
If icnt > 0 Then
For i = 1 To icnt Step 1
Set ishp = ActiveWindow.Selection(i)
' 曲げ位置を変更
ishp.CellsSRC(visSectionFirstComponent, 2, 0).FormulaU = "GUARD(EndX-BeginX)/3 -" & Str(i * 0.2)
ishp.CellsSRC(visSectionFirstComponent, 2, 1).FormulaU = "0"
ishp.CellsSRC(visSectionFirstComponent, 3, 0).FormulaU = "GUARD(EndX-BeginX)/3 -" & Str(i * 0.2)
ishp.CellsSRC(visSectionFirstComponent, 3, 1).FormulaU = "GUARD(EndY-BeginY)"
Next
Else
MsgBox "コネクタを選択してください"
End If
End Sub
【結果】
曲がる位置が変更されたのではないでしょうか?
ishp.CellsSRC(visSectionFirstComponent, ●, ▲).FormulaUの●▲を増やすと、曲がり角を増やすこともできますよ。


おおお、楽じゃん
おわりに
Visioのコネクタについて、いかがでしたか?
何となく使っていたコネクタも、理解して使えるようになるとレイアウトの手間がグンと減り上がり、簡単に美しい図を作れるようになりますねっ。