[If]でファイルを選択しなかった場合の処理を実装する
ファイルを選択しなかった場合にエラーとなるのは避けたいので、その場合も正しくアプリが終了するよう、ファイルが選択された場合にだけ処理が実行されるようにしてみましょう。
[1][If]アクションを配置する
[条件]-[If]アクションを、ワークスペースの[ファイルからテキストを読み取ります]アクションの前に配置します。
パラメーターの選択画面が開くので、
- [最初のオペランド]に[%SelectedFile%]と入力([{x}]をクリックして、選択することでも入力できます)
- [演算子]で、[空でない]を選択
して、[保存]ボタンをクリックします。
[2]アクションを移動する
ワークスペース上の[ファイルからテキストを読み取ります]アクションを右クリックし、表示されたコンテキストメニューから[上に移動]を選択します。If~Endブロックにアクションが移動したことを確認してください。
同様に、[メッセージを表示]アクションも[上に移動]し、If~Endブロック配下に移動してください。ワークフローが以下のような状態になっていればOKです。If~Endに囲まれたアクションは、Ifに設定した条件が成り立つときにのみ実行されます。
なお、[上に移動]操作はマウスによるドラッグ&ドロップ操作でも可能です。
[3]フローを実行する
フローを実行して、ファイル選択ダイアログで[キャンセル]ボタンを押してみましょう。今度は、ファイルを選択しなかった場合もエラーにならずに、フローが正常終了します。
ファイルを選択しなかった場合の処理フローを追加
現時点では、ファイルが選択されなかった場合はそのままフローが終了してしまいます。選択されなかった場合には、なんらかのメッセージを表示するのがより親切でしょう。以下では、その方法を示します。
[1][Else]アクションを配置する
[条件]-[Else]アクションを、ワークスペースの[メッセージを表示]と[End]の間に、ドロップします。[Else]は、Ifの条件が成り立たない場合に、[Else]~[End]に配置したフローを実行します。
[2][メッセージを表示]アクションを配置する
[メッセージボックス]-[メッセージを表示]アクションを、[Else]と[End]の間に配置します。
パラメーター選択画面が表示されるので、[表示するメッセージ]で[テキストファイルが選択されませんでした。]と入力して保存をクリックします。
[3]フローを実行する
フローを実行して、ファイル選択ダイアログで[キャンセル]ボタンを押してみましょう。今度はダイアログ上に[2]のエラーメッセージが表示されることが確認できます。
[Note]処理を複数に分岐する
[If]ブロックの配下には、[Else if]ブロックを配置することで、複数の条件を列記することもできます。例えば以下は、年齢を入力してもらって、それに応じたメッセージを表示するフローです。
[Else if]アクションの設定そのものは[If]アクションのと同じなので、上の図を手掛かりに自分で一から作成してみるのもよい練習です。
ちなみに、[If]アクションの配下に、さらに[If]アクションを配置することも可能です。入れ子にすることで、より細かな分岐を表現できます。