忍者ブログ

構成図自動結線マクロ(その3)コネクタの調整

2021年09月20日
今回もオートシェープの自動結線マクロの話。

結線することはできたけど、鍵コネクタでつなぐと線が重なって見えない。
これだと困るのでコネクタの形状を調整するマクロを作った。

アジャストは
shp.Adjustments.Item(1) = 0~1で指定するらしい。

コネクタの場合、線分のどの位置で折り曲がるかを設定する。
初期値は0.5で、ちょうどまんなかで鍵型になる。


やりたいことは、複数選択したコネクタで曲げる位置をずらす。
初期のアジャスト位置に対して、コネクタ番号×5%でずらす仕様に。

試してみると、50~80%にコネクタが集まるので、全体を手前にずらすことも必要とわかった。

で、番号順にずらす機能と全体をそのままずらす機能を±両方向へ設定可能にした。

Const adjustNum = 5 / 100 'アジャスタの分母 小さい方がずれる
shp.Adjustments.Item(1) = shp.Adjustments.Item(1) ± i * adjustNum
iを1に変更すれば全体がシフトする。



こんな感じ


以下、ソース。




Sub 負アジャストソート()
On Error Resume Next 'オブジェクトを選ばず使えるように
Dim shp As Shape, i As Long

For Each shp In Selection.ShapeRange
shp.Adjustments.Item(1) = shp.Adjustments.Item(1) - i * adjustNum
i = i + 1
Next shp
End Sub

Sub 負アジャストバイアス()
On Error Resume Next 'オブジェクトを選ばず使えるように
Dim shp As Shape, i As Long

For Each shp In Selection.ShapeRange
shp.Adjustments.Item(1) = shp.Adjustments.Item(1) - 1 * adjustNum
i = i + 1
Next shp
End Sub
Sub 正アジャストソート()
On Error Resume Next 'オブジェクトを選ばず使えるように
Dim shp As Shape, i As Long

For Each shp In Selection.ShapeRange
shp.Adjustments.Item(1) = shp.Adjustments.Item(1) + i * adjustNum
i = i + 1
Next shp
End Sub
Sub 正アジャストバイアス()
On Error Resume Next 'オブジェクトを選ばず使えるように
Dim shp As Shape, i As Long

For Each shp In Selection.ShapeRange
shp.Adjustments.Item(1) = shp.Adjustments.Item(1) + 1 * adjustNum
i = i + 1
Next shp
End Sub


PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字