今回は、Power Automate Desktop(PAD)の Switchの使い方について解説します。
Switch:複数の条件分岐
Switchは、複数(3つ以上)の条件分岐を行う場合に使います。
たとえば、上記のように、現在の時刻によって出すメッセージを変えるフローなどを作る際に使います。
Ifとの違いと使い分け
以前の記事で、If について解説しました。
Switch のフローと見比べてみて、何か違う点に気づきますでしょうか?分岐の数だけではないです!
・・・・正解は、
以下は、プログラミング言語(C言語)で、数値の判定をしたものです。
if文のほうは、「数値は1か?」それに対しYesかNoか、「数値は2か?」それに対しYesかNoか?と、Yes・Noの二択で判定しています。いっぽう、Switchは、「数値が1のとき」「数値が2のとき」・・・と、数値の値をもとに判定しています。
If と Switchの使い分け
If でも Switch でも、どちらでもフローを作ることは可能です。また、どちらを使わないとダメというルールもありません。ただし、
- 判定がYes・Noの2択かどうか(=条件が3つ以上かどうか)
で使い分けると良いでしょう。どちらを使うという正解はありません。使っていくうちに、このシーンではこっちだな、という感覚がついてくると思います。
極論、自分が実現したいことができそうならそれでOKです。
PADでのSwitchの使い方
では実際に、Power Automate Desktop(PAD)でのSwitchを使う方法を解説します。
今回は、
変数の値によって出すメッセージを変える
これを作りながら解説していきます。
変数の設定
左側にあるアクション一覧から、「変数の設定」を選択して、ドラッグアンドドロップで真ん中の白いエリアに配置します。
以下のようなポップアップが表示されますので、値には3と入力します。
「保存」を押すと、以下のような状態になります。
Switch アクションの追加
アクション一覧から「Switch」を追加します。先ほどと同様にドラッグアンドドロップで赤枠のあたりに配置します。
以下のポップアップが表示されますので、{X} を押して、「CurrentDateTime」を押して「選択」を押します。
「保存」を押します。
Case アクションの追加(ケース1)
次に、Caseアクションを追加します。
Case アクションを、SwitchとEndの間にドラッグアンドドロップで配置します。
以下のポップアップが表示されますので、「比較する値」に1と入力します。
「メッセージを表示」アクションの追加①
変数NewVarが1のときに、メッセージを表示するようにします。
アクション一覧から「メッセージを表示」を選択して、ドラッグアンドドロップで赤枠のところに配置します。
表示するメッセージに「1です!」と入力します。
Case アクションの追加(ケース2)
変数NewVarの値が2のときの処理を追加します。
Case アクションをEndの直前に追加します。
以下のポップアップが表示されますので、「比較する値」に2と入力します。
「メッセージを表示」アクションの追加②
変数NewVarが2のときに、メッセージを表示するようにします。
アクション一覧から「メッセージを表示」を選択して、ドラッグアンドドロップで赤枠のところに配置します。
ポップアップが表示されたら、先ほどと同様の要領で、表示するメッセージに「2です!」と入力します。
同じ要領でケース3の処理を追加
ケース2と同じ手順で、ケース3のときの処理を追加します。
完成したフローは以下のようになります。
このフローを実行すると、メッセージボックスに「3です!」と表示されます。
Default caseで「それ以外」の処理を行う
Switchの関連アクションに、「Default case」があります。これは、Caseアクションのうちどのケースにも当てはまらなかったときに実行されるアクションを設定することができます。
なお、Default caseはなくてもエラーにはなりません。
先ほどのフローに Default case を追加すると以下のようになります。
このフローを実行すると、変数に100が入っており、ケース1~3のどれにも該当しないため、Default caseの中の処理が実行されメッセージボックスが表示されます。
Case内でさらにIfやSwitchを使うこともできる
Case内でIfやSwitchを入れ子にして使うことも可能です。
- Ifを使った場合
変数が1の場合、かつ、変数が0より大きい場合に以下のようにメッセージが表示されます。
- Caseを使った場合
変数が1の場合、かつ、2つ目の変数が「らっぱ」の場合に以下のメッセージが表示されます。
トラブルシューティングなど
トラブルシューティングや、その他補足について以下にまとめます。
条件分岐が正しくされない
条件分岐が正しくされない場合、英数字の半角・全角が異なっている場合が考えられます。
例えば上記の画像では、Case=1ではなく、Case=’1’と数字が全角になってしまっています。これでは変数に1が入っていても1つ目のケース内には入ってきません。
同様に、英字の半角/全角、文字列内に空白文字や改行が入っている場合、正しく判定されないことがあります。
(参考)PADのCaseはフォールスルーは起こらない
C言語やJavaなどの一部のプログラミング言語では、case文の最後にbreak文を書かないと、次のcase文も実行されてしまいます。
例えば、以下のswitch文でnumberが1のとき、case 1が実行されたあとcase 2も実行されてしまいます。
int number = 1;
switch (number) {
case 1:
printf("数字は1です。");
case 2:
printf("数字は2です。");
・
・
・
これをフォールスルーといいますが、PADではbreak文は不要です。(念のため、ふだんプログラミングに親しんでいる方向けの補足です)
まとめ
今回は、Power Automate Desktop(PAD)の Switchの使い方について解説しました。
Ifと同じく、Switchも何かと使う機会があるかと思います。ぜひ基礎をおさえてフローに使ってみてください。
もし、ここが分からない、PADでこんなことってできる?など疑問や気になる点がありましたら遠慮なくコメントや問い合わせからご連絡いただければ幸いです。なお、当ブログは個人で運営していますのでお気軽に何でも聞いてください!
コメント