数式を使用して、Visio® ユーザーの操作に応じた、シェイプの拡大、縮小の方法を制御することができます。通常、ユーザーは、選択ハンドルを移動してシェイプのサイズを変更しますが、[えんぴつツール] を使用してシェイプの頂点を編集することもできます。
ユーザーが幅ハンドルまたは高さハンドルのどちらを使用してドラッグしているかによって、拡大に別々の規則を使用するシェイプを設計できます。このような方法の 1 つに、「高さを基準にした」数式を使用する方法があります。この方法は、高さに合わせて幅を調節することによって、シェイプの縦横比を維持します。シェイプの一部だけに対して制御を行うには、制御したい対象部分に応じて、高さを基準にした数式を [図形座標] セルに設定することができます。
1 次元シェイプでの高さを基準にした数式の使用に関する詳細については、「第 8 章 1 次元図形、コネクタ、および図形の接着」を参照してください。
このセクションの内容...
次の例では、直線ツールを使用して描画した矢印により、矢印が縮小したり、拡大したりする方法を制御する際にどのようにして数式を使用するかを示します。Visio が矢印に対して生成するデフォルトの数式により、矢印が水平方向あるいは垂直方向に拡大されると、それに比例してサイズが変更されます。
オリジナル矢印のサイズを変更すると、シェイプの比率が変更されます。
デフォルト数式を使用すると、長さの異なる矢印では矢の先端部のサイズも変更されるので、見た目が不揃いになります。図面で矢印を使用する場合、尾部だけを伸縮させ、矢じりは一定のサイズに維持したいと思うでしょう。しかし、シェイプが垂直方向に引き伸ばされた場合には、それに比例して矢じりのサイズを変更したいと思うでしょう。
矢印の幅は高さに比例するので、高さを基準にした数式では、矢じりの底辺 (次の図の頂点 3、4、6、7 を結ぶ線) を図の高さの分数として表します。
頂点はそれぞれ、[図形座標] セクションの行に対応します。
頂点 5 は、シェイプの上下のちょうど中間の位置にあるので、その y 位置は「Height * 0.5」で計算できます。頂点 5 から矢じりの底辺までの距離 x を高さを用いて定義すると、シェイプが垂直方向に引き伸ばされたときに矢じりのサイズは変更されますが、シェイプが水平方向に引き伸ばされたときにはサイズは変更されません。
この動作を行う数式は、矢じりの底辺を、シェイプの幅から頂点と底辺間の距離を引いた値と等しくなるように保ちます。つまり、次の等式になります。
= Width - Height * 0.5
矢じりの底辺上にある頂点 (頂点 3、4、6、7) の x 座標はそれぞれこの数式を使用して計算する必要があります。効率的にするため、頂点 3 のセルだけに数式を設定し、その他のセルにはこの値を参照させることもできます。頂点 3 の x 座標は [図形座標 1] セクションの X3 セルに相当します。
矢印の図形座標を表す頂点と数式
次の図は、作成される比例矢印の図形座標を示します。
作成される矢印の図形座標
高さを基準にした数式 :例例 (DVS_597) は、意図したとおりに完璧に動作します。ただし、矢印は対称なので、セル参照を用いて数式をさらに調整して、計算数を減らし、シェイプをカスタマイズしやすくすることができます。
たとえば、「Geometry1.Y1」や「Geometry1.Y7」セルには、次の同じ数式が入ります。
= Height * 0.75
この数式は次のように表すこともできます。
= Height - Height * 0.25
「Geometry1.Y2」セルには、数式「= Height * 0.25」があるので、式全体を繰り返すのではなく、数式の必要な部分に関して、単純にそのセルを参照することができます。そのため、「Geometry1.Y1」セルと「Geometry1.Y7」セルの数式は次のようになります。
= Height - Geometry1.Y2
これで、矢印の頂点を計算するためには 2 つのユーザー設定の数式、「 = Height * 0.5」と「= Height * 0.25」だけがあれば良いわけです。矢印の外観は 1 つの数式 (= Height * 0.25) を変更するだけで変えることができます。