ループ処理、条件分岐
RPAをはじめとする自動化の醍醐味のひとつは、「繰り返し」の動作をやらせることでしょう。人間にとっては繰り返しの動作は退屈ですが、RPAはそのような処理を得意とするので、「RPA化すべき業務」の対象として適切です。「繰り返し」の動作を行うときに登場するのが「ループ処理」「条件分岐」です。Automation Anywhere A2019ではどのような処理が可能かを見ていきましょう。
目次
「ループ処理」とは
Automation Anywhere A2019における「ループ処理」は「ループ」アクションで処理します。ループアクションをフローに追加してみるとわかるのは、「折りたたみ式のフクロ」を持っていることです。アクションリストの特定の部分をこのフクロの中にドラッグ&ドロップすると、その部分を繰り返すことができます。
ただし、まったく同じ動作を繰り返すと「無限地獄」になりますので、目印になる値を「変数」に入れて置きひとつずつずらしていくことで、必要な回数分 (データが存在する数など)だけ繰り返すようにしています。繰り返しの対象になるデータの集合のことを「反復子」と呼びます。
もしくは、もうひとつの方法として、特定の条件を満たしている間は何回でも繰り返す、という処理もできます。その場合は、「While条件」を使います。
ループ処理の中で使える反復子やWhile条件は以下の記事を見てください。
「反復子」を使ってExcelのテーブルを読み込んでみる
それでは、早速よく使う例としてExcelのテーブルをループを使って読み込んでみましょう。
記事「ExcelとCSVの基本操作」で扱ったのと同じデータファイルでExcelファイルを開くところまでアクションを入れたところから始めます。
使用するデータ
Step 1. Excelの「開く」アクションの後に、「ループ」アクションを挿入し、「アクションの詳細」パネルで「反復子」に「Excelの高度な操作」の「For each raw in worksheet」を選択します。
Step 2. パネルの少し下に「Assign the current value to this variable」とあるので、「変数を作成」ボタンを押します。
Step 3. レコード型変数に名前を付けたら「作成と選択」ボタンを押します。
Step 4. ループの中に「メッセージボックス」アクションを挿入し、「表示するメッセージ」の「値を挿入」ボタンを押します。
Step 5. 「値を挿入」ダイアログボックスで、先ほどのレコード型変数を選択します。
すると、レコード型変数の場合は選択する要素を聞いてきます。インデックス番号と列名のいずれかで指定できます。ここではインデックス番号で指定することにします。要素としては (0) 、つまりデータの中で一番左の "A" 列に入っているデータを指定します。(ヘッダーは除かれます)
そして「はい、挿入します」ボタンを押します。
Step 6. フィールドに "$ExcelRecord[0]$"という文字列が挿入されました。この書式がわかっていれば、今後はダイアログボックスを開かなくても直接この文字列を打ち込んでも指定可能です。最後に「保存」ボタンを押せば完成です。
実行してみる
さて、「▶実行」ボタンを押して実行してみましょう。
すると、Excelが起動してメッセージボックスが表示されます。A列の内容が続けて3回表示されていれば成功です。
「条件分岐」とは
条件分岐というのは、特定の条件を表す数式の結果がYes/Noという結果に応じて異なったフローに処理を流すことです。Automation Anywhere A2019では「If」アクションを使います。このアクションを挿入すると、「折りたたみ式のフクロ」が表示されます。アクションの詳細では「条件式」を指定することができます。
「If」には関連して「Else If」「Else」というアクションもあり、これらを挿入すると2本、3本に分岐したフローチャートが表示されます。これらは「If」の条件に合致しない場合に行う処理を示しています。
また、条件分岐は、さきほどのループ処理と組み合わせることで、より複雑なフローも処理することができるようになります。
読み込んだ値によって表示するか決める
では、実際に「If」アクションを使ってみましょう。前半の「ループ処理」で作ったアクションリストに続けて手を加えましょう。
Step 1. 「ループ」アクションのフクロの中の先頭に「If」アクションを入れ、元々あった「メッセージボックス」アクションを「If」のフクロの中に入れます。
Step 2. 次に、アクションの詳細の「条件」で「文字列の条件」を指定します。
- ソース値: "$ExcelRecord[0]$" と指定します。
- 演算子: "等しくない (≠)" を指定します。
- ターゲット値: "佐藤"と指定します。
後は「保存」ボタンを押したら完了です。
実行してみる
さて、「▶実行」ボタンを押して実行してみましょう。
すると、Excelが起動してメッセージボックスが表示されます。A列の内容が続けて2回、「佐藤」以外が表示されていれば成功です。