図形のテキストの数式を修正すると、ソリューション開発向けに高度な動作を定義でます。入力した数式を使って得られる値を表示することができるほか、値を書式設定して図形の役割を反映させることができます。このセクションでは、テキストの数式を変更するのに使うことができる高度な手法をいくつか紹介します。また、作成した数式を保護する方法や、図形をテストして意図したとおりの動作になることを確認する方法についても説明します。
このセクションの内容...
Visio 2000 では、数式を使用して得られた結果を表示し、その出力を適切に書式設定することができます。テキストブロックを選択し、[挿入] メニューから [フィールド] をクリックします。作成したテキスト フィールドには、シェイプシート (ShapeSheet®) のセルの数式を評価してテキストに変換された値が表示されます。これと同じ手法を利用してシェイプシート ウィンドウのカスタム テキスト フィールドを作成し、書式設定をした上で結果を図形に表示させることができます。
テキスト フィールドの数式を作成した場合、この数式は図形のシェイプシート ウィンドウの [テキスト フィールド] セクションに表示されます。このとき、数式はテキストに挿入されたときの順序で表示されます。この順序は必ずしもテキストに表示される順序と同じとは限りません。
テキスト フィールドを使うと、図形の現在の幅をさまざまな単位 (インチ、センチメートル、ポイントなど) で表示することができます。これには、FORMATEX 関数を使用して結果を表示したい単位を指定します。
FORMATEX 関数の構文は以下のとおりです。
FORMATEX(式, "ピクチャ", ["入力単位"], ["出力単位"])
この関数では、入力単位で評価された結果が出力単位の式に変換され、指定書式の文字列として返されます。表示形式 (ピクチャ) は、結果の書式設定方法を指定するためのコードです。入力単位と出力単位を指定する場合は、数値または測定単位を示す有効な略語 (mm、cm など) を使います。入力単位を空欄にしておくと、式を表現する単位は変換されません。出力単位を空欄にしておくと、入力単位と同じ単位が使われます。
FORMATEX 関数で図形の幅をテキスト フィールドに表示するには
たとえば、インチ単位で表示されている [Width] をセンチメートルに変換したい場合、次のように入力します。
= FORMATEX(Width,"0.00 u", "in.", "cm.")
Visio® は、[Width] の値を小数 2 桁で書式設定し、単位の略語を付け、インチをセンチメートルに変換します。たとえば、[Width] が1.875 インチの場合、4.76cm と表示されます。
表示形式 (ピクチャ) の詳細については、Visio® 製品付属のオンラインヘルプ「開発者用リファレンス」 ([ヘルプ] メニューから [開発者用リファレンス] を選択) で「有効な書式形式」を検索してください。
現在の回転角がテキストの一部として表示される図形を設計することができます。たとえば、航海図の方位線を示す図形や、土地の境界線図の傾斜インジケータなどで現在の角度を表示します。デフォルトの設定では、-180°から +180°の角度が表示されます。ANG360() 関数を使用して、図形の角度を 0°から 360°(0 〜 2 ラジアン) までの値に変換し、この角度を図形に表示します。
角度を正規化してテキスト フィールドに表示するには
= ANG360(Angle)
テキスト フィールドに表示される文字列 (数式によって得られる結果など) やカスタム プロパティの値などを表示する場合は、出力用の書式を指定することができます。テキスト出力には、数値と単位の組み合わせ、文字列、日付、時間、期間、通貨などを指定できます。Visio では、表示形式 (ピクチャ) に設定された書式を認識し、この書式で文字列を表示します。たとえば、表示形式 (ピクチャ) に 0 #/10 uu と設定すると、10.9cm が 10 8/9 centimeters と表示されます。
表示形式 (ピクチャ) を表示するには、[挿入] メニューから [フィールド] を選択します。FORMAT と FORMATEX の 2 つの関数の引き数と、[カスタム プロパティ] セクションの [Format] セルで使用できる値として示されているものが、表示形式 (ピクチャ) に相当します。使用できる表示形式 (ピクチャ) (日付、時間、期間、通貨、科学表記など) の詳細については、Visio 製品付属のオンラインヘルプ「開発者用リファレンス」 ([ヘルプ] メニューから [開発者用リファレンス] を選択) で「有効な書式形式」を検索してください。
文字列を作成する数式 (カスタム テキスト フィールドの数式など) では、FORMAT 関数を使用して出力の書式を設定できます。FORMAT 関数の構文は以下のとおりです。
FORMAT(式, "ピクチャ")
この式で得られる結果は、ピクチャによって指定されたスタイルで書式設定されます。FORMAT 関数では、書式設定後の出力文字列が得られます。表示形式 (ピクチャ) は、使用される式の型に合ったものでなければならず、表現型を混在させることはできません。たとえば、数値と日付の表示形式 (ピクチャ) を使って日付と数値の書式を組み合わせる ("#.## mmddyy") と、「"mmddyy"」の部分が無視され、最初の部分 「"#.##"」だけを使って式が評価されます。
テキスト フィールドの中で FORMAT 関数を使用するためには、「数式の結果と表示の書式設定」に示すようにユーザー定義式を指定します。[ユーザー定義式] のボックスで、数式に FORMAT 関数を使用してください。[ユーザー定義式] ボックスに数式を入力するには、図形のテキストブロックを開き、[挿入] メニューから [フィールド] をクリックします。次に、[分類] で [ユーザー定義式] を選択した状態で、ユーザー定義式のテキスト フィールドに数式を入力します。
次のテーブルは、数値と単位とを使った一般的な書式設定の例を示しています。
数値と単位によるカスタム テキスト書式
構文 | 表示出力 |
FORMAT( 0ft. 11.53in., "0.## U") |
0 FT. 11.53 IN. |
FORMAT( 260.632 cm, "0.## u") |
260.63 cm. |
FORMAT( 0 ft. 11.53 in. , "# #/# u") |
11 5/9 in. |
FORMAT( 260.632 cm, "0 #/# uu") |
260 5/8 centimeters |
FORMAT( 260.632 cm, "0 #/5 uu") |
260 3/5 centimeters |
FORMAT( 0ft. 11.53in., "0.000 u") |
0 ft. 11.530 in. |
[カスタム プロパティの定義] のダイアログ ボックスで表示されるカスタム プロパティの値を書式設定することができます。これには、図形のシェイプシート ウィンドウの [カスタム プロパティ] セクションで [Format] セルに表示形式 (ピクチャ) を記述します。たとえば、プロジェクト タイムラインのシェイプで、プロセスの経費を計算する「経費」というカスタム プロパティを作成することができます。このプロパティを通貨の形式で表示するには、図形の [カスタム プロパティ] セクションの [Format] セルに次のような表示形式 (ピクチャ) を記述します。
Format = "$###,###.00"
Visio では、お使いのパソコンに設定されている「地域別設定」に従って通貨単位や小数点の記号、桁区切りの位置などを決定します。この「地域別設定」を変更するには、Windows のコントロール パネルで「地域」を選択します。英語版の Microsoft Windows では、[カスタム プロパティ] ダイアログ ボックスには $1,200.00 のように表示されます。ドイツ語版の Windows では、DM1.200,00 と表示されます。
さらに、カスタム プロパティの値をテキスト フィールドに表示できます。図形を選択した状態で [挿入] メニューから [フィールド] を選択すると、カスタム プロパティと、そのプロパティの表示形式 (ピクチャ) を指定できます。[フィールド] ダイアログ ボックスでは、[分類] のカスタム プロパティを指定することができます。ここでは、カスタム プロパティのデータ型に合った表示形式 (ピクチャ) のリストが表示されます。これによって、割り当てた表示形式 (ピクチャ) でカスタム プロパティの値が図形のテキストブロックに表示されます。
カスタム プロパティを使用して計算を行う場合、文字列以外のデータ型をプロパティ値に定義することができます。このようなデータ型としては、数値、通貨、日付、時刻、期間などがあります。詳細については、「第 7 章 図形動作の機能強化」の「セクション 3 カスタム プロパティ」を参照してください。
図形のテキストにユーザー定義式を作成する場合、これを誤って上書きしてしまわないように保護することができます。フォント、余白の設定、テキストのスタイルなど、よく使われる操作の多くは、[テキスト情報]、[テキストブロックの書式]、[文字の書式]、[段落の書式]、[タブ] の各セクションに影響します。これらのテキスト属性をユーザー設定するための数式を記述した場合、次のいずれかの方法でその数式を保護できます。
GUARD 関数は、テキストブロックの位置や場所を制御するセルに記述された数式を保護します。たとえば、テキストの幅と高さをユーザー設定する数式を保護し、図形のサイズを変更したときに数式が上書きされないようにします。GUARD 関数を使用してテキストの書式設定を制御するセルの数式を保護すると、そのテキストの書式を変更できなくなります。スタイルがシェイプの数式にどのように影響するかについては、「第 10 章 スタイル、書式、色の管理」を参照してください。
保護ロックは、図形の書式設定やテキストの入力ができないようにします。[保護] セクションの [LockFormat] セルに 1 を設定すると、書式やスタイルを変更できなくなります。[保護] セクションの [LockTextEdit] セルに 1 を設定すると、図形にテキストを入力できなくなります。テキストのスタイルを設定することはできます。[LockTextEdit] を使用するのは、テキストを入力すると図形が予想外の動きをする可能性がある場合 (非常に小さい図形などの場合) だけにしてください。
[その他] セクションで [HideText] セルに [TRUE] を設定すると、テキストを完全に隠すことができます。それでも図形にテキストを入力することはできます。入力時にはテキストは目に見えますが、入力し終えると図形には表示されません。
もちろん、保護する箇所を増やすほど図形を変更できる余地は少なくなります。ユーザー定義式を保護しつつ、業務の妨げにならない程度の柔軟性を持たせる必要があります。
ここでは、図形のテキストブロックの位置決めやサイズ変更の結果をテストする際に使用できる手順を説明します。ユーザーが図形を操作したときにテキストブロックの位置が正しく維持されるようにするには、反転、回転、上下反転のすべてテストする必要があります。
シェイプのテキストブロックの位置をテストするには
これは、図形がさまざまな回転角度でどのように動作するかを示したテスト設定です。
次に、図形のテキスト処理能力をテストします。これを行う前にすべての図形のテキストを入力しなおし、結果をチェックします。
追加したときの図形のサイズを確認するには
用途に合った方法で、テキストブロックが大きくなるまでテキストを入力していきます。
予想通りの結果が得られたか、見た目は悪くないか、読みやすさに問題はないかなどを検討します。このうちの 1 つにでも問題があれば、テキストの最低幅を指定する方が必要があるかもしれません。詳細は、「セクション 3 テキストの回転の制御」の「テキストブロックのサイズの制限 : 例」を参照してください。