2007年12月19日水曜日

第67回目 図形編(その5) 図形と図形を結ぶ

○第67回目 図形編(その5) 図形と図形を結ぶ

 今回はコネクタが出てきます。図形をつなぎ、連携関係を表すものです。
 コネクタは、カギ型を使用します。直角が多く出るので図にキレが生じます。
 コネクタで必要な条件は、どの図形とどの図形をどの場所でどの場所で結ぶかということです。パラメータは4つあります。
 場所とは、大体は図形の上中央、左中央、下中央、右中央の4つです。
 上の図形の下中央から、下の図形の上中央を結ぶ、という感じになります。
 4つのセットを必要なだけ用意しておいて、これを読み込ませ、この条件でコネクタを引いてください、というのが、マクロの流れとなります。

 0.事前に4項目(コネクタの元と先の図形番号とそれぞれのコネクタをつける場所。)のセットを作っておき、その場所を選択しておく。









 1.パラメータを取得する
 2.パラメータの内容に基づきコネクタを引く

 1.は基本コマンドなので省略します。

 コネクタ(カギ型です)を引くコマンドは次の通りです。
  ActiveSheet.Shapes.AddConnector(msoConnectorElbow, 283.5, 405#, 7.5, 48# _
  ).Select
  コネクタの先を矢印型にする
  Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
  線の太さ
  Selection.ShapeRange.Line.Weight = 1.25
  コネクタ開始の図形とその場所
  Selection.ShapeRange.ConnectorFormat.BeginConnect ActiveSheet.Shapes(z_no1(i)), kone1(i)
   Shapes(z_no1(i)) のカッコ内が図形の番号です
   kone1(i)     のカッコ内が結ぶ場所の番号です
  コネクタ先の図形とその場所
  Selection.ShapeRange.ConnectorFormat.EndConnect ActiveSheet.Shapes(z_no9(i)), kone9(i)
   Shapes(z_no9(i)) のカッコ内が図形の番号です
   kone9(i)     のカッコ内が結ぶ場所の番号です
 これを必要なだけ繰り返します。

 このマクロのメリットは、机上で設計が出来、そのままパラメータとして与えられる点です。
 一旦コネクタで結べば、もとの図形を動かしても大丈夫です。

 それでは、コネクタを引きなおしたいというニーズに対してはどうするのでしょうか。
 現在では、特定のコネクタを指定して、引き直すというやり方はとっていません。一旦削除(これはマクロ)して、改めて引き直すという方法をとっています。これはコネクタの図形番号がわかりにくいということによります。
 具体的手順は次のようになります。
 1.一旦引いた後、"図形のテキスト、名前等の取得・書き込み"(第65回目参照)で、コネクタ群の図形番号を把握します。
 2.その番号を指定して、図形を削除します。(今後登場予定)
 3.コネクタのパラメータを修正して、改めてコネクタを引きます。

 今回までで、組織図とか流れ図などかなりの部分は作成可能となります(間違った場合はその部分を手で削除して作り直してください)。
 エクセルシートを文書と見立てれば、ワード感覚の資料が出来ます。

 次からは補助機能を紹介します。

 1.今回話題になった削除(図形番号を指定。範囲指定も可とする)
 2.図形のテキストに図形番号を付加するまたは図形番号を削除する
  (図を見ただけで番号がわかるようにします。不要になれば消せます)
 3.大きさの修正(倍率を指定。縦横同時のみならず、縦だけ、横だけも可とする)
 4.直線を引く(水平、垂直線)
 5.線、コネクタの線の太さ、矢印の向きの修正
 6.図形に色をつける
 7.コネクタを全部削除
 もひとつおまけに、
 8.図形の整列(図形群の横軸をそろえる、縦軸をそろえる、横に均等配置する、縦に均等配置する)

0 件のコメント: