True/Falseの条件分岐
この記事では、AUTOROでTrue/Falseの条件分岐を設定する方法を紹介します。
【できるようになること】
- Trueの場合/Falseの場合の条件式を作成
- if…elseの条件分岐
if...else処理とは
条件がTrueの場合とそうではない場合で処理を分岐させることを、多くのプログラミング言語では「if…else処理」と呼びます。
AUTOROでif…elseの分岐処理を設定するには、2つの条件式を用意する必要があります。
条件式A
例:Xはリンゴである条件式Aの否定となる条件式(条件式AがTrueの時に、Falseになる条件式)
例:Xはリンゴではない
これらの条件式は、AUTOROにおいては、以下のような関係性を持つ必要があります。
- 片方の条件式の結果が真(True)の時、もう片方の条件式の結果は、偽(False)である
それぞれの関係を図で示した簡易な例は、以下となります。
- 参考… 否定
AUTOROでは、ifとelseの2つの条件分岐を書く場合、elseにも条件式を指定・明示する必要があります。
ここで、elseはifに指定した条件の否定(NOT)である必要があります。
なお、else ifのような形で、3つ以上の条件分岐のうちどれか1つの条件だけを実行したい場合、それぞれの条件式が重なり合わないようにする必要があります。
そのため、else ifに相当する処理を実装したい場合は、以下のような方法で実装する必要があります。
・同一スコープ内の他のif, elseの条件式と真理値が被らない
・ANDを用いて他の条件式を否定する
・ある条件を満たした事を意味させるフラグ用の変数を用意して各条件にANDで組み込む。
・RunScriptアクションを使用して、JavaScriptでBooleanを出力させる
ワークフローの設定例
True/Falseの例を紹介するため、以下のようなケースを想定した条件式とワークフローを作成します。
ケース:あるテキストの値がOKだった場合と、OKでなかった場合で条件分岐
- テキストを作成します。
- 中身を OK とします
まず、テキストの値がOKだった場合の条件式とその結果を作成します。
- Compare(比較する)を設定します。
- 比較基準:1で作成したテキストのアウトプットを指定します。
- 比較対象:
OK
と入力します。 - 比較方法:「と等しい」 にします。
- ではない(not):OFFにします。
このアクションの結果は、比較基準の値(1で作成したテキスト)がOKである場合、Trueとなります。
次に、テキストの値がOKではない場合の条件式とその結果を作成します。
2との違いは、「ではない(not)」のみです。
- Compare(比較する)を設定します。
- 比較基準:1で作成したテキストのアウトプットを指定します。
- 比較対象:
OK
と入力します。 - 比較方法:「と等しい」 にします。
ではない(not):ONにします。
このCompareアクションの結果は、比較基準の値(1で作成したテキスト)がOKである場合、Falseになります。
OKではない場合、Trueとなります。
1のテキストがOKである場合の処理を格納するIF(条件分岐)を追加します。
- IFを追加します。
- 追加したIFのインプットに、2のアウトプットを指定します。
- IFの範囲内にText(テキストを作成)を設定し、適当な文字列を入力します。
1のテキストがOKではない場合の処理を格納するIF(条件分岐)を追加します。
- IFを追加します。
- 追加したIFのインプットに、3のアウトプットを指定します。
- IFの範囲内にText(テキストを作成)を設定し、適当な文字列を入力します。
ここまではCompareを使用して条件式を作成しましたが、ExcelのIF関数レベルの簡易なスクリプトを使用して条件式を作成することも可能です。
上記と同じケースは、以下のように再現できます。
- 1のテキストを変数に保存し、任意の変数名を指定します。
- IFにTrueの条件式を入力します。
${変数名 == "OK"}
- IFにFalseの条件式を入力します。
${変数名 != "OK"}
# テキストを作成 +text_1: action>: Text text: OK # 比較する OKならTrue,OKでないならFalse +compare_1: action>: Compare subject: +text_1 compare_with: OK method: EQUALS not: false # 比較する OKならFalse, OKでないならTrue +compare_2: action>: Compare subject: +text_1 compare_with: OK method: EQUALS not: true # 真のとき テキストがOKの場合 +if_1: if>: +compare_1 _do: # テキストを作成 +text_2: action>: Text text: 'OKです' # 真のとき テキストがOKでない場合 +if_2: if>: +compare_2 _do: # テキストを作成 +text_3: action>: Text text: 'OKではないです!' # 変数に保存_作成したテキスト(簡易スクリプト用) +store_value_1: action>: StoreValue key: text value: +text_1 # 真のとき_テキストがOKの場合(簡易スクリプト) +if_3: if>: ${text == "OK"} _do: # テキストを作成 +text_4: action>: Text text: 'スクリプト OKです' # 真のとき_テキストがOKではない場合(簡易スクリプト) +if_4: if>: ${text != "OK"} _do: # テキストを作成 +text_5: action>: Text text: 'スクリプト OKではなかったです'