コラム - お役立ち情報

2024.08.08

【無料RPA】Power Automate Desktop(PAD)活用事例 条件分岐を使いこなせ!エラーを減らすフロー設計

本シリーズでは、Power Automate Desktop※を活用して業務効率化に役立てる方法をご紹介しています。
今回は、エラーの発生を未然に防ぐ方法をご紹介します。
そこで使用するのが、フロー作成には欠かせない『条件』アクションです。
条件アクションは、フローをより柔軟かつ強力にするための重要な要素です。
正確に条件を設定し、エラーの起きにくいフローを作成することで、ビジネスプロセスの自動化をスムーズに進めることができます。
本コラムでは、条件アクションの基本と、エラーを防ぐための設計方法について解説していきます。

※ Power Automate Desktop (PAD)とは?
MicrosoftがWindows10・11ユーザー向けに無償で提供しているPC自動化ツールです。
プログラミングなしでPCの操作を自動化できます。
本コラムでは当ツールの活用方法をご紹介しています。
インストール方法はこちら

目次

1.『条件』アクション

2.エラーを防ぐフロー設計
3.まとめ

1.『条件』アクション

(1)条件アクションの種類と比較


条件アクションは、次の6種類に分類されます。

・If
・Else If
・Else
・Switch
・Case
・Default

これらの6種類のアクションは、実質的には「If」と「Switch」の2つのアクションを親とするものです。以下にそれぞれの概要を示します。
Ifアクション: 「もし○○だったら、△△をする」のように、設定した条件を満たす場合のみ特定のアクションを実行します。
Switchアクション:特定の値に基づいて異なるアクションを実行します。
 
「If」と「Switch」を実用性で比較した場合、「If」の方が優れているところが多いです。理由は以下の通りです。
1つ目は柔軟性です。「If」アクションは複数の条件を組み合わせて複雑なルールを作れます。
たとえば、「もし天気が晴れていて、かつ友達が来たら、公園に行く」というように、複数の「もし~なら」を組み合わせて色々な状況に対応できます。
 
「Switch」アクションは一つの値に対してだけ動作を決めるので、「もし天気が晴れなら公園に行く」「もし雨なら家にいる」など、単純な選択には便利ですが、複数の条件を同時に考えることは難しいです。
 
次に分かりやすさです。「If」アクションは「もし~なら~する」という形で、条件が合った時だけ動作するので、流れがとても直感的で理解しやすいです。
たとえば、「もしお金があったらアイスを買う」といった具合です。
「Switch」アクションもシンプルですが、一つの値に対してだけ動作を決めるため、条件が少し複雑になるとわかりづらくなります。
 
まとめると、「If」アクションはたくさんの条件を組み合わせて使えるし、わかりやすくて、色々な場面で使えるので、とても便利です。
正直なところ、「If」アクションの使い方をマスターすれば「Switch」アクションの出番はほとんどありません。
本コラムでは、「If」アクションに絞って解説していきます。

 

(2)Ifアクション

ここからはIfアクションの使い方を解説していきます。
 

①.「If」アクションの挿入

まず、フロー作成画面左のアクションパネルから「条件」カテゴリの中にある「If」アクションをドラッグドロップします。
すると、画像のような条件を設定するためのウィンドウが立ち上がります。

 

②.条件の設定

次に、条件を設定します。
設定する内容は以下の通りです。
最初のオペランド:条件設定に使用する値を入力します。
 条件設定に使用できるのは、数値・文字列・変数の値などです。
演算子:条件を比較するための演算子を選択します。
 (例:等しい、等しくない、以上、以下など)
2番目のオペランド:比較に使用する値を設定します。

例えば、画像のように設定すると、
変数「%RandomNumber%」が0より大きいかをチェックします。

 

③.真の場合のアクションを配置

条件設定が完了すると、デザイン画面に「If」アクションの一つ下に「End」アクションが配置されます。

「If」アクションの条件を満たした場合に、「If」と「End」の間に配置したアクションが実行されます。
以下のようにアクションを配置してみます。

この例だと、変数「%RandomNumber%」が0より大きい場合に、
「%RandomNumber%は正の数です」というメッセージボックスが表示されます。逆に、変数「%RandomNumber%」が0以下の場合はこの処理をスキップします。

 

④.偽の場合のアクションを配置(Else)

「If」アクションの条件を満たさなかった場合にも、特定の処理を行うことが出来ます。この場合、「Else」アクションを使用します。
真の場合のアクションの一つ下に「Else」アクションを配置しましょう。

「If」アクションの条件を満たさなかった場合、「Else」と「End」の間に配置したアクションが実行されます。

この例だと、「%RandomNumber%」が0より大きくなかった場合に、
「%RandomNumber%は正の数ではありません」というメッセージが表示されます。
ここで、「%RandomNumber%は0以下の数です」としなかったのには理由があります。
「Else」アクションでは、明示的に『%RandomNumber%<=0』という条件を設定していません。そのため、「If」アクションの条件を満たさなかった全ての場合で処理が実行されます。 つまり、『%RandomNumber%==0』や『%RandomNumber%<0』でも「Else」の条件は満たしてしまうため、「%RandomNumber%は0以下の数」とは限らないのです。 そこで、「If」アクションの条件を満たさなかった場合に、さらに条件分岐を作る方法があります。 それが「Else if」です。

 

⑤.偽の場合のアクションを配置(Else if)

「Else if」アクションは複数の条件を評価するために使用します。「If」の条件を満たさなかった場合に、別の条件をチェックすることができます。
さらに、「Else if」は連続して使用できるので、複数の条件比較にも対応できます。
さて、「Else if」アクションの使い方ですが、「If」と「Else」の間に配置します。

条件設定の方法は「If」アクションと同様です。
今回は、「%RandomNumber%は0と等しい」という条件を設定します。

設定が完了すると、以下のようになります。

この場合、%RandomNumber%>0を否定、かつ%RandomNumber%=0の場合に「Else if」アクションと「Else」アクションの間の処理が実行されます。

「Else if」の条件は、「If」の条件を満たさなかった場合にのみ評価されます。
そのため、「If」の条件で%RandomNumber%>0としているのに、「Else if」で%RandomNumber%=1等の条件を設定してしまうと絶対に実行されない部分を作ってしまいますので注意が必要です。

 

(3)その他のアクション

PADには、「If」「Switch」以外にも条件分岐できるアクションが用意されています。
ここでは、以下の二つのアクションを紹介します。
①. 「ファイルが存在する場合」アクション
②. 「ファイルを待機します」アクション


それぞれ使い方と特徴を見ていきましょう。
 
①. 「ファイルが存在する場合」アクション

指定したパスにファイルが存在するか評価するアクションです。
ファイルが「存在する場合」と「存在しない場合」から条件を選択できます。
実際に使ってみます。



条件を設定しました。「C:\Users\○○\Documents\test.xlsx」というファイルが存在する場合、「ファイルが存在する場合」アクションと「End」の間の処理が実行され、「ファイルは存在します」というメッセージが表示されます。
ここで注目したいのが、このアクションには「Else」アクションを組み合わせることが出来ます。
つまり、ファイルが存在する場合の処理と存在しない場合の処理の両方を作ることが出来ます。

 
②. 「ファイルを待機します」アクション

指定したファイルが存在するまでフローを一時停止するアクションです。
このアクションは、ファイルが特定の条件下で作成・削除されるのを待つ場合に使用されます。
待機する最大時間を設定できるので、もしファイルが作成(削除)されなかった場合にも次のアクションに進みます。



このアクションは他の条件アクションと違って入れ子構造になっていません。
なぜ「ファイルを待機します」アクションが条件アクションなのかは次回詳しく説明します。

 
今回紹介した、「○○が存在する場合」アクションと「○○を待機します」アクションは様々なカテゴリで用意されています。
基本的な使い方は同じですので、状況に合わせて使い分けていきましょう。
 
ここまで、条件アクションの基本について解説してきました。
次項では、エラーの発生しにくいフロー設計について解説していきます。

2.エラーを防ぐフロー設計

PADでエラーの起きにくいフローを作成するためには、考慮すべきポイントがいくつかあります。
その中でも、特に重要なのが以下の2点です。
①. 条件アクションの活用
②. エラーハンドリングの活用

今回は「条件アクションの活用」について解説していきます。

条件アクションを活用することで、特定の条件を満たす場合のみ処理を実行できます。
つまり、フローが意図しない動きをしないように制御できるということです。
正常な処理を行うために必要な条件を設定しておくことで、エラーの発生頻度を大幅に減らすことができます。

実際に使用しているビジネスフローから3つ例をご紹介します。
 
(1) フォルダ選択をキャンセルした場合


ファイルを読み書きするフローを作成するときは、フロー実行時に選択したフォルダのファイルを読み書きするという手法をよく使います。
その際、フォルダ選択をキャンセルしてしまうとファイルが読み込めずにエラーで止まってしまいます。
なので、このサンプルではキャンセルを押したときはその場でフローを停止させるようにしています。

 
(2)住所文字列を特定の項目で切り分ける


この例は、電話番号と会社名、郵便番号、住所が1つのつながった文字列になっているものをそれぞれの項目ごとに分解する処理の一部です。
文字列を分解できるかどうかを事前に確認することで、どの文字列がどの項目なのかを正確に処理できます。
さらに、分割できないことを事前に確認することで、予期せぬエラーを回避することにもつながっています。

 
(3)意図した画面を開いているか判別する


最後に紹介するのは、Webシステムにログインしてデータを入力・登録するフローです。
フローの先頭でシステムにログインする処理を行うのですが、すでにログイン済みだった場合はログイン画面を飛ばしてTOP画面へ遷移してしまいます。
そこで、ログイン画面を開いていたらログイン処理を、違う画面だったらこの処理を飛ばすという処理を行っています。


3.まとめ

ここまで、条件アクションの使い方とエラーを起きにくくするフロー設計について解説してきました。最後に、条件アクションを活用してエラーを防ぐためのポイントを2つ紹介します。
①. 変数の値について

変数が自分の意図した値に必ずなるのか確認するようにしましょう。
特に、変数が「空」になることがあるのかということと、変数の型が意図したものになっているかを気にかけるようにすると意図しないエラーが発生する頻度をグッと抑えられます。

②. 制御するアプリケーションの状態について

フローの進行上、制御したいアプリケーションが意図した画面・状態に毎回なるのか確認するようにしましょう。
例えば、Webページを開く場合、インターネットの通信速度によっては画面表示に時間がかかり、データの抽出がうまくいかないことがあります。
この場合、画面が表示されるまで待機することでエラーを回避できます。
他には、Excelからデータを抽出する場合、前回保存した時のシートが先頭で開かれるため、意図しないデータが抽出されてしまうことがあります。
この場合は、Excelを開いた後に所定のシートをアクティブに設定することでエラーを防ぐことができます。

以上のポイントを押さえることで、フローがより安定し、エラーの発生頻度を大幅に減らすことができます。
これらの手法を活用し、堅牢で信頼性の高い自動化フローを設計することで、業務効率をさらに向上させましょう。

次回は、エラーハンドリングについて解説していきます。




あなたの疑問は解決しましたでしょうか?解決しなかった場合は直接質問も受け付けております!
執筆者にメールで質問する


 記事を書いた人
記事を書いた男性アイコン
 株式会社ワイ・ビー・シー
 営業部 開発チーム
 白川
 



PADに関連する記事はこちら
第1回 入門編 業務を自動化して作業を楽に
第2回 活用事例 メールの添付ファイルを自動保存
第3回 活用事例 Webページからデータを抽出しエクセルに転記
第4回 活用事例 無償アカウントでもフローを共有してさらに便利に!
第5回 活用事例 フローの不具合を見つけて直す
第6回 活用事例 表形式データのDatatableを活用しよう!
第7回 活用事例 「データテーブル」アクションを使いこなそう!
第8回 活用事例 面倒な複数箇所への転記作業はまとめて自動化!
第9回 活用事例 【続】面倒な複数箇所への転記作業はまとめて自動化!
第10回 活用事例 【続々】面倒な複数箇所への転記作業はまとめて自動化!
第11回 活用事例 PADで四則演算!
第12回 活用事例 条件分岐を使いこなせ!エラーを減らすフロー設計


関連記事

PADで四則演算

【続々】複数個所への転記はまとめて自動化

【続】複数個所への転記はまとめて自動化