次のコード・フラグメントは、ユーザーに入力を促します。入力ストリングがストリング true ならば、コード・フラグメントはメッセージ・ウィンドウにメッセージ「You typed TRUE」を表示します。入力ストリングが他のストリングならば、 コード・フラグメントはメッセージ・ウィンドウにメッセージ 「You typed FALSE」を表示します。この例では、以下のアクションが使用されています: プロンプト・アクション、条件アクション、およびメッセージ・アクション。

このコード・フラグメントを本書からシステム・クリップボードにコピーし、 システム・クリップボードからコード・エディターにコピーできます。このコードは該当する部分のみであり、既存のマクロ・スクリプトのマクロ画面にコピーする必要があります。また、ストリング変数 $strData$ も作成する必要があります。変数を作成するには、<HAScript> 開始タグの後、最初の <screen> エレメントの前に次の行を追加します。
<vars>
   <create name="$strData$" type="string" value="" />
</vars>
スクリプトをマクロ・エディターに保管した後、マクロ・エディターまたはコード・エディターを使用してスクリプトを編集できます。
この例については、次の点に注意してください。
  • この例は、<actions> エレメントを含むコードの部分とその中にあるアクションから構成されています。
  • 最初のアクションは、メッセージ・ウィンドウを表示し、ユーザーの入力をセッション・ウィンドウの 入力フィールドに書き込むことなく、その入力を変数 $strData$ にコピーするプロンプト・アクションです。
  • 条件アクション (<if> エレメント) の最初の部分には、条件があります。条件は単に $strData$ です。
  • $strData$ はブール・コンテキストのストリング変数なので、 マクロ・ランタイムはストリングのブール値への変換を試行します (自動データ型変換を参照)。ユーザーの入力がストリング 'true' (小文字、大文字、または大/小文字混合) であれば、変換は正しく完了し、条件にはブール値 true が入ります。ユーザーの入力が他のストリングであれば、変換は失敗し、条件にはブール値 false が入ります。
  • 条件が真ならば、マクロ・ランタイムは <if> エレメント内のアクションを実行します。これは、メッセージ You typed TRUE を表示するメッセージ・アクションです。その後、条件が真の場合に実行するアクションはすべて行われたので (ここではアクションは 1 つだけ)、マクロ・ランタイムは <else> アクションをスキップし、通常どおり継続します。
  • これに対し、条件が偽ならば、マクロ・ランタイムは <if> エレメントにあるアクションをスキップし、<else> エレメント内のアクションの実行を開始します。このエレメントには、メッセージ You typed FALSE を表示するメッセージ・アクションが 1 つあります。<else> アクション内のアクションをすべて実行した後、マクロ・ランタイムは通常どおり継続します。
図 1. 条件アクションを示す サンプル・コード
<actions>
   <prompt name="'Type true or false'" description="" row="0" col="0"
               len="80" default="" clearfield="false" encrypted="false"
               movecursor="true" xlatehostkeys="true" assigntovar="$strData$"
               varupdateonly="true" />
   <if condition="$strData$" >
       <message title="" value="'You typed TRUE'" />
   </if>
   <else>
       <message title="" value="'You typed FALSE'" />
   </else>
</actions>