RPAはRobotic Process Automationの略で、ロボット技術を用いて、業務の自動化を行うためのツールをRPAツールと言います。
大手企業を中心に、RPAツールを導入し、業務を自動化する企業が増えていますが、このRPAの利用にはプログラミングの知識が必要なのでしょうか。
また、誰もが使えるツールといえるのでしょうか。
結論からいうと、RPAは誰もが使えるツールであるが、プログラミングを知っている人はより業務の自動化がしやすく、トラブルシューティングもできる、ということになるでしょう。
また、RPAの保守や開発に関する限り、プログラミング知識はほぼ必須と言ってよいでしょう。
導入・運用・保守の3つの業務およびRPA開発で、それぞれプログラミングの知識が必要か、また、プログラミングの知識が使える場合は、それぞれの業務にどんな違いが出るのか、より詳しく解説します。
株式会社MICHIRU 取締役
この記事の監修担当者:
相馬章人
2014年に医療・ヘルスケアITベンチャー企業に入社。人工知能やIoT技術を使用したプロダクト開発およびプロジェクトマネジメントを経験。2018年フリーランスのソフトウェアエンジニアとして企業・大学と連携し機械学習を用いた自然言語解析を行うプロジェクトに参画。2018年より株式会社MICHIRUに参画。主にカスタマーサクセスを担当。
Contents
RPAによる業務改善とは?
RPAツールには、業務を自動化し、業務効率を上げる効果があります。
特に、作業が自動で進められる出来る仕事 データの抽出・転記転写・チェックなど、定型的で反復される業務の効率化には有効で、多くの実例があります。
人の手を通さないので、RPAツールを利用すると、
- 大量作業ができる
- 長時間作業ができる
- 同じ動作を繰り返すので人の手より正確
のメリットがあります。
RPAツールによる業務と役に立つプログラミング知識
RPAの業務内容により、必要性が異なりますので、導入と、運用・保守のそれぞれの場面で、プログラミング知識が役に立つのか、ご説明します。
導入
RPAの導入の場面は、プログラミングの知識がなくても進めやすい業務が大きな部分を占めています。
目的が業務改善であり、業務フローをよくわかっている業務担当者がRPAの導入プロジェクトに多く参加することがむしろ必要、と考えてよいでしょう。
但し、もちろん導入のための設定や、シナリオの作成の場面ではプログラミングの知識を持っているエンジニアと、業務担当者の対話で作るのが最も効果的です。
業務担当者とエンジニアが要件を定義し、エンジニアが作成したシナリオを、業務担当者との検証で修正したり、時に直すこともまれではありません。
その試行錯誤がより業務に合ったシナリオ作りにつながるのです。
ただし、後程ご説明するように、RPAは、PC操作の定型的作業を自動化するツールなので、RPAツール単体でデータの分析・整理などを行えるものではありません。
そこで、他のツールとの組み合わせで導入する、シナリオに他のツールでの作業を織り込むなどの場面になると、プログラミングの知識があるとさらに自動化が楽になることがあります。
しかし、なかなかプログラミングを知らない業務担当者の側からこうした組み合わせの知恵は出てきません。プログラミングを知っているエンジニア側からの発想が必要になるでしょう。
運用
RPAの運用はプログラミングの知識があったほうがスムーズに行えます。
シナリオ開発・他のシステムとの組み合わせなど、運用における応用を利かせることができます。
また、これはさらに重要な点ですが、トラブルシューティング・緊急事態の発生に、たとえばバッジプログラムをあてる、シナリオを書きなおすなど、直接に有効な手段を下すことができます。
社内の運用ルールの設定に際しても、プログラミングを理解して運用ルールを書くことにより、大きなトラブルを防ぐことができます。
プログラミングの知識のみ、というわけにはいきませんが、いざという大きなトラブルがあるとき、課題の抽出にはツールの言語を理解した技術者により行ったほうが確度が高いのです。
保守
RPAのサーバを含めた保守・メンテナンスではプログラミングおよびシステム開発の知識が必須になります。
保守は不測のことや、緊急の事態に対処する必要性もありますし、他のシステムへの影響や、あるいは通信に関しても考慮に入れて対処する場面があります。
そうなるとプログラミングができるできないより、むしろシステムエンジニアの仕事です。緊急事態の発生に対処するにはエンジニアの経験がものをいいます。
内製・外注を問わず、プログラミングの知識があるエンジニアが行うことが前提となります。
RPA開発とプログラミングのスキル
シナリオ開発・ツール開発・カスタマイズ・他のシステムとの連携を行うことを総称してRPA開発と言います。
ツール開発ないしカスタマイズ、システム連携は基本的にエンジニアの仕事です。ベンダーはもとより、RPAツールは、自社開発も意外と多いのです。
外注・内製を問わず、自社開発はシステム開発者が行います。
これに対して、シナリオ開発は、必ずしもエンジニアがやる必要はありません。プログラミング不要のツールも今は増えています。
作り方はノンエンジニア~情報処理技術の知識をある程度持つ人で十分理解できるでしょう。
ただし、ツールごとに必要性が異なるので、プログラミングができる人材がいれば、ツール選択の幅は広がります。
さらにシステム間の連携は、コードが書けないと直接手が下せません。API連携でも、あるいはプラットフォーム上のモジュール化を行うにも、コードを書けないと実現できません。
システム間の連携は、C+や、JavaScriptのような主要言語のほかに、RPA開発の場面では次のような開発言語・スキルがあったほうがよいでしょう。
なお、内製ですべて開発ができるほど人員が潤沢な会社は少数なので、RPA導入企業では積極的に外注を使っています。
RPA開発においてあったほうが役に立つプログラミング知識とは?
RPA開発においては、業務側でも意識の高い人材が覚えるプログラミング言語と、本格的なエンジニアが使うプログラミング言語と、双方が役に立ちます。
前者は業務担当者側から、シナリオ開発に関して深い理解を持ち、エンジニアと適切にコミュニケーションができるようになるためにも、知識があったほうが良い言語で、特にVBA、HTMLやCSSが挙げられます。必ずしも上級レベルの知識が必要ではありません。
また、後者はエンジニアがRPAツール開発に利用する言語です。人工知能=AIと、RPAの組み合わせを視野に入れて、C++やPythonなどの知識があると大変役に立つでしょう。
マクロ&VBA
マクロはプログラミング言語ではなく、Excelの機能の一つですが、プログラムに近い近いコマンドを使うExcelの自動化技術です。
Excel上、数値の変換がマクロを使うと楽にできるようになるので、操作を自動化するRPAツールとマクロの組み合わせは便利です。
マクロを記述する言語が、VBAです。双方の違いは、Excelの機能か、それとも言語かです。VBAはより正確に言うと、Visual BasicのExcel用の言語のことです。
マクロが組める、VBAがわかるというのはほぼワンセットの技能と言っていいのですが、VBAをコードから書けるレベルが上級・マクロが自由に使えるレベル、というと中級と考えるとわかりやすいでしょう。
マクロ・VBAができると、次のようなメリットが生じます。
RPAとの 組み合わせで できること |
Excel自動化 |
---|---|
楽になること | 操作に加えて 数値の変換が できるようになる |
楽になる場面 | 操作の自動化と、 数値の書換・転写が 必要になる場面。 出入力に使える。 |
本やWebページではRPAとマクロとの組み合わせ事例が多く紹介されています。そうした情報を参考にしつつ、活用の幅を広げられるようになります。
Access
Accessは、マイクロソフトのDBアプリであり、データを入力する際・出力する際によく使われています。
本質的には、一つ一つのデータを処理する際に、テーブル化して、一定の規則の下、データを整理できるということがメリットです。
言語ではありませんが、VBAプログラミングがわかり、DB知識があると自由に使うことができます。
AccessとVBAができると、次のようなメリットが生じます。
RPAとの 組み合わせで できること |
データの整理の自動化 |
---|---|
楽になる 理由 |
整理したデータの出・入力の 自動化に使える |
楽になる 場面 |
データの出入力が必要な場面。 数値の書換・転写も Excel同様に可能 |
HTML・CSS
HTML(HyperText Markup Language)やCSS(Cascading Style Sheets)はプログラミング言語ではなく、ウェブページを構成するための技術です。
ウェブブラウザはこれらの情報を読み込んで、ウェブページを表示させています。
これらの知識があると、Webページやブラウザで使用するWebアプリを自動化する際により効率よく情報を取得したり、ウェブページの構造を利用して繰り返し処理を行うなどできるようになります。
C++、Pythonなど
C++やPythonなどのプログラミング言語は、RPAツールだけでなく様々なアプリケーションの開発で利用されています。
これらのプログラミング言語やアプリケーション開発についての知識・技術があれば、RPAツールを使うだけでなく業務にあったシステムを開発できます。
しかし、RPAツールを扱うには必須ではありません。むしろこのような知識・技術がなくとも業務を効率化できることがRPAツールのメリットです。
こんな場面でもプログラミング知識はあると有利
ところで、RPA技術者には、ベンダー検定があります。
ベンダー検定ではRPA導入の上で必要となるRPAのシナリオを作成するスキルや特に中級~上級はトラブルシューティングスキルが問われます。
その中でも最も受験者が多いRPA技術者検定(WinActor 向け)の中級者向けエキスパートレベル試験もトラブルシューティングの実技を問われます。
プログラムをその場で作るということや、プログラミング言語のスキルを磨いておかないと受からないという程度ではありませんが、プログラミング経験者が受験をする場合は、準備にあまり時間がかからないという特徴があります。
プログラミング未経験者がプログラミングの経験者と同じだけの業務処理能力を付けることは不可能ではありません。
しかし、未経験者・経験者の違いはあり、プログラミング未経験者だと、中級相当のスキルを身に着けるのに経験者と比較して時間がかかりがちで、結局はプログラミングの基礎知識を付けるくらいの時間が必要になってしまいます。
結果、プログラミングの知識があったほうが有利になるでしょう。
RPAプロジェクトへの参加に資格試験が参考になりますので、スキル証明の場面ではプログラミングが有利になります。
まとめ
以上に見た通り、RPAを導入して利用するには、プログラミングの知識がないとダメ、絶対に必要ということはありません。
しかし、自動化の幅を広げ、会社での業務に最大限活用するには、あったほうが便利です。
RPAツールは日進月歩でそれ自体進歩しますし、シナリオ開発の発展で、日進月歩でできることが増えていきます。
リソースのない会社は派遣・外注をうまく使う必要はありますが、外注の工数や、コストを考えると、内部で人員を限って養成することも賢い選択です。
ぜひ、プログラミングで、RPAによる業務の自動化のメリットを最大限にしてみましょう。