前のトピック     次のトピック

第 7 章 図形動作の機能強化

セクション 1   コントロール ハンドルが付いた柔軟性のある図形の作成

ユーザーに大幅な柔軟性を残しながら、図形動作を制御する 1 つの方法として、図形にコントロール ハンドルを追加する方法があります。選択ハンドルと同様に、コントロール ハンドルは緑の小さな四角で表されます。ユーザーはこの四角を選択したり移動したりすることができます。コントロール ハンドルの位置を動かすと、図形はユーザーが設定した数式に従って反応します。コントロール ハンドルの長所は、ユーザーの入力を利用する図形を設計できることです。

コントロール ハンドルの使用方法については、Visio® 製品に付属しているシェイプをご覧ください。コントロール ハンドルの付いたシェイプそれぞれには、ハンドルの動作を説明するヒントがあります。次の図は、シェイプのコントロール ハンドルの使用方法をいくつか示しています。

 



コントロール ハンドルのついた Visio マスタシェイプ

  1. 寸法線をドラッグして、シェイプの高さを調整できます。
  2. 線を必要な長さだけドラッグして、トークン リングに接続できます。
  3. 別のシェイプに対する椅子の向きを変えることもできます。


ヒント  コントロール ハンドルをドラッグすると、コントロール ハンドルのローカル座標がステータスバーに表示されます。


このセクションの内容...

シェイプへの [コントロール ハンドル] セクションの追加

コントロール ハンドルの定義

コントロール ハンドルのアンカー ポイントの設定

コントロール ハンドルの動作の設定

シェイプへの [コントロール ハンドル] セクションの追加

シェイプにコントロール ハンドルを追加するには、シェイプシート (ShapeSheet®) スプレッドシートに [コントロール ハンドル] セクションを追加し、[コントロール ハンドル] セクションの該当する行にある数式を変更します。[コントロール ハンドル] セクションはコントロール ハンドルの属性を定義します。図形の [コントロール ハンドル] セクションの各行は、1 つのコントロール ハンドルに対応し、行内のセルはコントロール ハンドルの動作内容を定義します。たとえば、[CanGlue] セルは、コントロール ハンドルを他のシェイプに接着できるかどうかを定義します。[Tip] セルを使用すると、ユーザーがポインタをコントロール ハンドル上に置いたときに表示される、ヒントの内容を定義することができます。[コントロール ハンドル] セクションを追加した後、[コントロール ハンドル] セクションの行を参照してハンドルの動作を定義する数式を、シェイプシートのセルに記述することができます。

テキストブロックのコントロール ハンドルの詳細については、「第 9 章 テキストの動作の設計」の「テキストブロックの位置の制御」を参照してください。

TOPへ

コントロール ハンドルの定義

[コントロール ハンドル] セクションのセルを使用して、図形のコントロール ハンドルの位置と動作を定義します。たとえば、次の図のように、図形の頂点を制御するコントロール ハンドルを追加することによって、吹き口の位置を移動できる吹き出しを作成することができます。この例では、吹き出しを、四角形部分のまわりだけに図形枠が付いた 2 次元の図形にすることで、コントロール ハンドルの位置が図形の他の部分に影響しないようにしています。

 



吹き出しの頂点用に定義されたコントロール ハンドル (A)コントロール ハンドルを使用して吹き口の位置を変更します。

 



コントロール ハンドルの位置は [図形座標] セルの数式によって定義されます。6 番目の頂点にコントロール ハンドル (A) を追加するには、 [図形座標] セル (B) にコントロール ハンドルの参照を入力します。

吹き出し図形を描画するには

  1. 次の図に示すように、直線ツールを使用して、吹き口が反転した四角形を描画します。
  2.  



  3. シェイプ シートの [保護] セクションにある [LockCalcWH] セルを TRUE に設定して、図形の幅と高さの再計算をできないようにします。これにより、コントロール ハンドルを使用して吹き口を移動しても、オリジナルの四角形の図形枠が維持されます。

次の手順では、[コントロール ハンドル] セクションと数式を追加して、コントロール ハンドルを吹き口頂点と関連付けます。

吹き出しにコントロール ハンドルを追加するには

  1. 吹き出し図形のシェイプシート ウィンドウを開いて、[挿入]メニュー から [セクション]を選択し、[コントロール ハンドル] をオンにして、[OK] をクリックします。

  2.   すでに [コントロール ハンドル] セクションのある図形にコントロール ハンドルを追加するには、行を選択して右クリックし、ショートカット メニューから [行の挿入] をクリックします。


    [コントロール ハンドル] セクションを図形に追加すると、座標が Width*0, Height*0 のコントロール ハンドルが作成され、図面ぺージの図形に追加されます。コントロール ハンドルはマウスを使用して移動することができますが、図形の図形座標と何らかの関連付けをしなければ、何の意味もありません。一般には、制御対象の頂点と関連付けます。

  3. ハンドルを使用して制御する頂点に対応する [図形座標] セルに、コントロール ハンドル位置 ([Controls.Xn]セルと [Controls.Yn] セル) への参照を入力します。
  4. 一般に、[図形座標] セクションの [X] セルには、コントロール ハンドルの x 座標を参照する数式を、[Y] セルには y 座標を参照する数式を入力します。吹き出しセグメントを前の図で示した手順で描画すると、吹き口頂点は [図形座標] 行 6 によって制御されます。この例では、次の数式を入力します。

    Geometry1.X6     = Controls.X1
    Geometry1.Y6     = Controls.Y1

    コントロール ハンドルにはデフォルト数式 Width*0, Height*0 が定義されている結果、頂点は一時的にローカル座標 (0, 0) に割り当てられるので、吹き口は消えたように見えます。

  5. 図面ウィンドウのコントロール ハンドルをドラッグして、吹き口をもう一度表示します。
  6. あるいは、コントロール ハンドルのデフォルト数式を、たとえば、Width*0.75, Height*-0.5 に変更することによって、吹き口の位置を決めます。

  7. [X Dynamics] セルと [Y Dynamics] セルには、コントロール ハンドルのアンカー ポイントを入力します。アンカー ポイントは、ライブ ダイナミクスがオフになっている場合、動的に描画される黒の直線でコントロール ハンドルと結ばれます。詳細については、「コントロール ハンドルのアンカー ポイントの設定」を参照してください。この例では、デフォルト値はそのままにしておきます。
  8. [X Behavior] と [Y Behavior] セルには、0 から 9 までの定数を入力して、図形のサイズ変更に伴ってコントロール ハンドルの位置のがどのように変化するかを設定します。この例では、次の定数を入力します。
  9. X Behavior     = 4
    Y Behavior     = 2

    詳細については、「コントロール ハンドルの動作の設定」を参照してください。定数一覧については、Visio 製品付属のオンラインヘルプ「開発者用リファレンス」 ([ヘルプ] メニューから [開発者用リファレンス] を選択)の「コントロール」を検索してください。

  10. コントロール ハンドルの [CanGlue] セルは、コントロール ハンドルが他の図形に接着できるかどうかを定義します。この例では、デフォルト値はそのままにしておきます。
  11. [Tips] セルには、コントロール ハンドルのヒントに表示される文字列を入力します。
  12. 文字列は自動的に引用符で囲まれます。この例では、次のように入力します。

    Tip     = "吹き口を移動"

TOPへ

コントロール ハンドルのアンカー ポイントの設定

図形に定義した各コントロール ハンドルには、その図形上にアンカー ポイントがあります。このアンカー ポイントは、コントロール ポイントの [X Dynamics] セルと [Y Dynamics] セルによって定義されます。Visio 2000 では、ライブ ダイナミクス表示と呼ばれる新機能により、ユーザーがコントロール ハンドルを移動すると図形の図形座標が更新されます。ライブ ダイナミクス表示がオフの場合は、ユーザーがハンドルをドラッグすると、黒の伸縮するゴムバンド線がアンカー ポイントとコントロール ハンドルの間で伸び縮みします。このゴムバンド線は、コントロール ハンドルの移動先と図形の移動結果を、視覚的にわかりやくすく示します。アンカー ポイントの位置は、コントロール ハンドルを移動するときのゴムバンド線の表示に影響するだけで、ぺージに表示される図形の形状には影響しません。ライブ ダイナミクス表示をオンにしている場合、アンカー ポイントには視覚的な効果はありません。図面のライブ ダイナミクスを非表示 (デフォルトでは表示) にするには、[ツール] メニューから [オプション] をクリックし、[オプション] ダイアログ ボックスの [図面] タブをクリックし、[ライブ ダイナミクスを表示] をオフにします。

[オプション] ダイアログ ボックス ([ツール] メニューから [オプション]) の [図面] タブで [ライブ ダイナミクスを表示] がオフになっているときに、コントロール ハンドルを動かすと、アンカー ポイントとコントロール ハンドルが黒の線で結ばれ、コントロール ハンドルをドラッグするにつれてこの線が伸縮します。

[X Dynamics] セルと [Y Dynamics] セルを使用すれば、図形に対して任意の位置にアンカー ポイントを設定できます。デフォルトでは、アンカー ポイントはコントロール ハンドルの位置に表示されます。ただし、図形と相対的な位置にアンカー ポイントを配置することもできます。たとえば、図形の下部にコントロール ポイントのアンカー ポイントを設定するには、次の数式を入力します。

Y Dynamics     = Height * 0

アンカー ポイントを図形の中心に設定するには、次の数式を入力します。

X Dynamics     = Width/2
Y Dynamics     = Height/2

TOPへ

コントロール ハンドルの動作の設定

コントロール ハンドルのある図形を引き伸ばした場合にハンドルがどのように動作するか、つまり、コントロール ハンドルが図形に比例して移動するか、それとも図形に対して同じ位置にとどまるかを指定できます。コントロール ハンドルの位置を固定する場合は、コントロール ハンドルを非表示にして、ユーザーがドラッグできないようにすることができます。

コントロール ハンドルの表示プロパティを変更するには、以下の値をシェイプシートに設定します。

次の表に示すように、[コントロール ハンドル] セクションの [X Behavior] セルと [Y Behavior] セルを使用して、コントロール ハンドルの位置と動作を定義することができます。[X Behavior] セルと [Y Behavior] セルは互いに独立して機能します。

[X Behavior] セルと [Y Behavior] セルの設定

表示 非表示 図形を引き伸ばしたときのコントロール ハンドルの動作
0 5 図形を引き伸ばすと、図形に比例して移動します。
1 6 図形に比例して移動しますが、左右 (X Behavior) または上下 (Y Behavior) には移動できません。
2 7 図形の左端 (X Behavior) か下端 (Y Behavior) から一定のオフセットを保ちます。
3 8 図形の中心から一定のオフセットを保ちます。
4 9 図形の右端 (X Behavior) か上端 (Y Behavior) から一定のオフセットを保ちます。

たとえば、次の図は、[X Behavior] 値が 4、[Y Behavior] 値が 2 のコントロール ハンドルを持つ吹き出しを示しています。

 



[X Behavior] セルと [Y Behavior] セルは、図形の外周に対してコントロール ハンドルの位置を制御します。

  1. コントロール ハンドルは、図形の右下隅から一定距離オフセットを保ちます。
  2. 左あるいは上のハンドルを使用して図形を引き伸ばしても、コントロール ハンドルは同じ位置にとどまります。
  3. 下または右のハンドルを使用して図形を引き伸ばすと、コントロール ハンドルはオフセットを維持したまま移動します。

Top