RPA(Robotic Process Automation)とは、ユーザーがPC上で行う操作を肩代わりしてくれる、自動化BOTのような仕組みのこと。
代表的なツールとしては、UiPath や WinActor などがあり、各社さまざまな開発環境を提供している。


特徴的なのは、Pythonの Selenium のようなコードベースではなく、UIベースで開発できる点。
特にUiPathは、Excel VBAの「マクロ記録」に近い感覚で操作を記録し、その後にPC上の要素(エレメント)を認識させながらワークフローを組み立てていくスタイル。
基本的には、
分岐(IF)
LOOP処理
変数代入
といった基礎的な概念さえ理解できれば、比較的簡単に自動化を構築できる。
一方で、最近はBOTアクセスを禁止しているサイトも多く、使いどころが難しくなってきている。
例えば、あらかじめ入力内容を決めた状態で、直接サーバーへ送信するタイプのBOT(スクリプト)
a = “5/20”
b = “20”
のように、必要な値を実行プログラムに事前にセットしておき、その情報を画面を介さずに一気に送信する仕組みである。
ただ、RPAベースの処理は「PC操作をプログラムが代行している」形なので、実際には人間が画面を操作しているのとかなり近い。
例えば、
- 画面を開く
- ボタンを押す
- 次の画面が表示されるのを待つ
- 入力欄へ値を入れる
(a = “5/20″、b = “20” など) - 送信ボタンを押す
- WEB側のプログラムが入力内容を受け取る
- サーバーへデータを送信する
といった流れを、人の代わりに高速で処理しているイメージ。
動作速度も、人間がかなり慣れた手つきで操作しているレベル、もしくはそれ以上程度のオペレーションになる。
しかし、それを知らない側から見ると「BOT(スクリプト)アクセス」と判断されるケースもあり、このあたりは難しいところ。
例えば、予約サイトなどでは、予約開始時間まで更新ボタンを押し続けるケースがある。
この場合、人間が手動で更新を連打するのと、RPAが更新ボタンを押すのとでは、スピードにそこまで大きな差があるわけではない。
実際に差が出るのは、予約ページが開いた後。
空き枠の認識、入力欄への値の投入、確認画面への遷移といった一連の処理を、RPAが迷わず正確に進められる部分にある。
ただし、RPAは、画面操作を介さず直接リクエストを送るタイプのBOTに、純粋な処理速度で勝つことは難しい。
例えるなら、RPAは人間と同じように、
画面を開く
ボタンを押す
画面の変化を待つ
という流れを順番に処理していく必要がある。
一方で、直接通信するタイプのBOTは、その画面操作を飛ばして、いきなり結果だけをサーバーへ送ることができる。
極端に言えば、「画面を見ずに最後の裏口から処理している」ようなイメージに近い。
その分、速度面では圧倒的に有利になるが、構築難易度も高くなりやすい。
逆にRPAは、人間の操作に近い形で動くため、既存業務へ組み込みやすく、専門的なプログラミング知識が少なくても導入しやすいという強みがある。
また、実際に運用する場合は、サイト側の利用規約やアクセス制限への配慮も重要になる。
とあるサイトの掲示板で、予約スピードについての書き込みがあった。
「どんなに速くても10秒はかかるはずなのに、4秒で埋まっていました」と。
「スクリプトを使っている」と騒がれていたが、もし本当にスクリプトならコンマ1秒の世界だよね、と思った。
1秒を超えるようなスクリプトは逆にあり得ない気がしつつ、アカウントを削除しました。

コメント