ここ数年で、プログラミングとはまた違うというか同じような話で、RPA(Robotic Process Automation)というものがクローズアップされています。
RPAは、パソコンで行われる作業の自動化をして、企業の生産性や業務効率をアップさせよう、というものです。
ただ、単純にパソコン作業を自動化するだけだったら、ExcelのマクロとかVBA、ほかにもいろいろとやりようが20年以上前からあったように思いますが、最近出てきているRPAは、プログラミングができない人でも、自動化できるようなロボット作成アプリケーションを使って業務を自動化できる、というところが新しいものになります。
VBAは、たしかにパソコン上の作業をいろいろと自動化できますが、それなりにVBAの書き方がわかっていないと、自分のやりたいことが思うようにできなかったりしますが、RPAだとプログラミングがわからなくても作業を自動化できます。
私も、勤めている会社の業務の自動化を担当していたりしたこともあるので、いくつかのRPAツールは触ったり、実際に作って業務で使っていたりしますが、RPAツールは便利なところもある反面、使い方が難しかったり、途中までうまくできているのに、最後まで通して動かせない、とかいろいろ問題があります。
・・・が、こと個人のパソコン業務であれば、多少不完全でも自動化する意味は大いにあると思いますので、私も自分のパソコン作業を自動化するべく、Pythonの勉強と並行して、RPAの勉強も進めていきたいと思います。
現在、巷で騒がれている各RPAツールも、現在リリースされているようなRPAツールの技術では「ノンプログラミングで作業を自動化」と言っている割には、プログラミングの知識が本当にゼロだとうまくRPAツールで自動化できなかったりするので、まだ今の段階ではプログラミングの知識は学んでおいて損はないと思います。
RPAでできることできないこと
RPAでできることは、基本的にはパソコン上でできることであればだいたい可能です。
・・・が、人による複雑な判断が伴うような作業はRPAには向いていない、もしくは作るのが非常に大変、リリース後のメンテナンスも大変です。
そのため、何か複雑な条件、もしくは条件がコロコロ変わるような業務には向いてません。
たとえば、部長の機嫌によってやらなければいけないことが変わる業務、とか、手書きの文字を読まなければいけない、とかですね。
手書き文字の認識は、最近はAIとかを使って、だいぶ精度高く読み取りができるようになってきていますが、それでも誤読はするので、業務としてはまだ完全には自動化できない、と感じています。
あとは、RPAツールで動かすことのできない社内システムや、だいたい動かせても、最後の登録ボタンだけ押せない、とかいうケースもあったりします。
実際にRPAを会社の業務で使おうとしていて感じることとして、業務を自動化するのにプログラム言語が不要なのがRPAの特徴なのですが、そのRPAをちゃんと業務で使えるレベルで作ろうとか、どの業務がRPAに適しているのか?とかは、プログラミング的な考え方が少しはわかってないと作れない、というのが現在のRPAが抱える問題なんじゃないか?と思います。
プログラミングの知識がないと、実際に業務をRPA化するときに、条件分岐の設定とかがうまく作れなかったりしますので。。。
現在、本当にプログラミングの知識が全くない人でも作れる業務自動化のRPAは、単純なコピー&ペーストとか、データ入力とか、条件分岐がまったくない、もしくは簡単な条件で分岐させるだけ、くらいの、本当に簡単なものしかできないと思います。
逆に言うと、最初から最後まで、分岐もなく、繰り返し処理もなく、何の判断もいらない、というような業務、ある意味人がやると苦行に感じるような業務が自動化に向いていると思います。
まとめると、個人的には以下のように感じてます。
(できること)
パソコン上でできることはだいたい可能
(できないこと)
・分岐の条件を明確化できない業務
・手書き文字の判別
・RPAツールでどうしても操作できないシステムやボタンがあったりする
RPAのツール
RPAのツールは有料のものや無料のもの、いろいろあります。
とりあえず自分の定型業務だけ業務自動化できれば良い、という場合は、オープンソースで無料で作れるツールを使っても問題ないと思います。
が、それなりの規模の人数が携わる業務だったりすると、有料のRPAツールを使ったほうが良いと思います。
ただ、有料のRPAツールって、結構良いお値段がするので、自動化で得られるメリットとRPAツールにかかるコストのバランスを考えて対応することになると思います。
現状、有名どころのRPAツールは、だいたい以下のような感じだと思います。
・BizRobo
・UiPath
・BluePrism
・Automation Anywhere
・Nice
・WinActor
無料だと以下のようなツールですね。
・Selenium
・sikulix
・UWSC
どのツールも、一長一短あるので、「これがベスト!」というのは1つに絞りづらいのが現状だと思います。
私も業務でいくつかのツールは触ったり、実際にロボット開発したりした経験もあるので、触ったことのあるツールについては別途まとめようと思います。