Smart Communication Design Company
ホーム > ナレッジ > Blog > RPA Blog > 2018年8月 > 今日からできる!UiPath高速化の工夫3選!!

RPA Blog

RPA(ロボティック プロセス オートメーション)にまつわる国内外の最新情報をお伝えすると共に、自動化推進に役立つ話題や社内の導入事例などについてご紹介します。
ミツエーリンクスでは「Webサイト運用RPA導入支援」サービスを提供しています。Webサイト運用におけるロボット化にご興味がありましたら、お気軽にお問い合わせください。

今日からできる!UiPath高速化の工夫3選!!

RPAエンジニア 小林

RPAを使って業務を自動化し、ロボットに作業をさせていると、「もっと速く処理が終わればさらに便利なんだけどなー」と感じる時があると思います。今回は、UiPathの初心者の方におすすめの、簡単にできる高速化の工夫を3つご紹介します。

ロボットにさせる処理の手順を見直す

1つめの工夫は、無駄な処理を行っていないか見直すということです。特に、For EachアクティビティDo Whileアクティビティといった繰り返しの中にある無駄を省くことができれば処理時間の大きな改善が見込めます。例えば、「商品URLが書かれたリスト(Excelファイル)をもとに複数の商品ページを訪問して価格を調べ、同じExcelファイルの各URLの横に各商品の価格を書き込む」という作業を考えます。この場合、次のような流れが考えられます(括弧内は使うアクティビティの例)。

  1. 商品URLリストを読み込み(Excel application scopeRead Range
  2. ページを訪問して(Open Browser
  3. 価格情報を取得し(Get Text
  4. 価格をExcelに書き込む(Excel application scopeWrite Cell

これらの動作をそのままFor Eachなどの繰り返しのアクティビティの中に入れれば所望の動作は実現できそうです。実際にこの手順でも問題なく動作するのですが、この処理を実装したロボットを実行してみると、Excelを開く→価格を書き込む→Excelを閉じるという動作を繰り返しているのが気になります。この場合、Excelを起動する回数を減らすことで処理をより高速化できます。

例えば、Excelを開いたままにしておいて、価格情報を都度書き込み、全て書き終わったところでExcelを閉じるようにすればExcelの起動は1回で済みます。UiPathのアクティビティの構造で考えると、For Each > Excel application scope > Write Cellという構造だとExcelが何度も起動してしまいますが、Excel application scope > For Each > Write Cellという構造にすればExcelを開いたまま次々に情報を書き込んでいくことができます。

繰り返し処理の中で都度Excelを起動するよりも、起動した状態で繰り返し処理を行うように変更した方が速い

Excelの起動回数を減らすもう1つの方法として、価格情報を都度書き込まずにデータテーブルに蓄積していき、最後に一気に書き込むという方法もあります。この場合、先述した方法と比べブラウザ画面とExcel画面の切り替え回数も減るのでさらに高速になりますが、エラーが生じてロボットの処理が止まった際に途中からの再開がしにくいというデメリットもあります。

Excelの動作を非表示にする

2つめは、Excelの読み込みや書き込みを画面に表示しないようにする方法です。このやり方は至ってシンプルで、Excel application scopeでOptionsにあるVisibleのチェックを外すだけです。Excelに大量にデータを書き込むなど、Excelを使った処理が多い場合に有効ですが、ロボットが今何をしているか見えないので、処理がどこまで進んでいるか分からなかったり、エラーが起きても原因を特定しにくかったりするというデメリットもあります。ロボットの作成やデバッグの段階ではExcelの動作が見えるようにし、確実に動くロボットを走らせる段階でVisibleのチェックを外すと良いでしょう。

Visibleのチェックを外すと、動作を表示しない分処理が速くなる

アクティビティの待ち時間を調整する

3つめは、アクティビティの処理前後の待ち時間を短くするという方法です。UiPathのアクティビティでは大抵、アクティビティ開始前の待ち時間(Delay Before)が200ミリ秒、アクティビティ終了後の待ち時間(Delay After)が300ミリ秒というのがデフォルト値になっています。この値を更に小さい値に設定することで、アクティビティから次のアクティビティに移る時間が早くなり高速化が見込めます。しかしながら、この方法を使う際にも注意が必要です。あまりに間隔を短くしてしまうと、前のアクティビティによる処理が終わる前に次のアクティビティの処理が始まってしまい、エラーの原因となってしまうからです。確実に早くおわると分かっている操作(チェックボックスの操作など)を何度も繰り返しやる必要があるときに使うと有効でしょう。

待ち時間を調整することでさらに速い処理が実現できる

今回は、ちょっとした工夫でできるUiPathの高速化の方法を3つ紹介しました。どれも簡単にできる工夫ばかりですが、うまく使えば今まで以上に生産性を向上させることができます。業務を自動化することに慣れてきたら、処理を早くすることも意識していきたいですね。