BizRobo! ブログRPAの開発や運用に役立つ情報を配信
1 RPAとは
RPA(ロボティック・プロセス・オートメーション:ソフトウエアロボットによる業務自動化)とは、RPAツールと呼ばれるソフトウエアを利用して、パソコン上での定型的な作業を自動実行する技術です。
オフィスワークに応用することで、まるで人を増やしたような効果が得られることから、RPAのことを「デジタルレイバー(仮想知的労働者)」と呼ぶこともあります。その特徴やメリットについては、以下の記事で詳しく紹介しています。
関連ページ:RPA(ロボットによる業務自動化)とは
2 RPAを使い始めるのにプログラミング言語の知識は不要
RPAツールでは、メニュー選択やドラッグアンドドロップといった直感的操作で手順を指定し、パソコン上で繰り返し行う作業を自動実行できます。操作画面の見た目も分かりやすく、一般的なオフィスソフトなどと同じような感覚で使えます。そのため、RPAツールを使い始めるにあたって、特別なプログラミング知識は必要ありません。
RPAは、あらかじめ手順が決まってさえいれば、人がマウスやキーボードを使って処理していた作業をほぼ何でも自動実行できる上、そうした機能を、ITに関する特別な知識やスキルがない状態から扱えます。これが他のITツールにない特長であり、急速に普及した理由でもあります。
ITの初心者もできるだけ簡単に扱えるよう、RPAツールには絶えずさまざまな改良が加えられており、使い続ける中でツールの機能や仕組みを深く理解していけば、より高度なことも実現できるようになっています。
ただ同時に、RPAは「ローコード」のツールと言われるとおり、本来プログラミング言語を使って処理するような内容を、できる限りプログラミング無しで実現するためのものです。つまり、RPAツールを使ってソフトウエアロボットに出す指示は、プログラミング言語を使ってコンピューターに出す命令と、基本的には同じものです。
したがって、IT未経験からRPAによる業務自動化・効率化のスキルをある程度身につけた方が、発展的にプログラミング言語への知識も深めるのは、とても有意義なことといえます。また、既にプログラミング言語に関する知識や、プログラミングの実務経験を持つ方は、未経験者に比べてRPAに対する理解や習熟、上達のスピードといった点で有利なことも確かです。
従来であれば全員にプログラミング言語の知識が求められるような業務自動化・効率化のプロジェクトを、プログラミング経験がない現場の業務に通じたメンバーが主体となって始められること、さらにそこからプログラミング言語への知識を深めたり、プログラミング経験者と共働したりすれば、より高度で大規模な業務改革も実現できることが、RPAを活用するメリットだといえるでしょう。
3 プログラミング言語の知識がRPA活用に役立つ場面
では実際に、プログラミング言語の知識を持つことがRPAの活用にどう役立つか、活用の段階ごとに見ていきましょう。
1:設計段階…シンプルで柔軟な設計ができる
RPAの設計段階では、プログラミングの知識や経験がもしあれば、よりシンプルで柔軟な設計を実現するのに役立ちます。
RPAの設計においては、自動化したい業務の工程を、
- ・手順を順番に進める(順次)
- ・ある手順を繰り返す(反復)
- ・条件ごとに別々の手順を進める(分岐)
という3つの要素に分解し、ソフトウエアロボットに実行させる作業内容を、これらの組み合わせで再構成するのが基本的なルールです。
RPAツールの操作画面では、こうした基本パターンを特に意識していない状態からでも、ソフトウエアロボットの設計が十分できるようになっています。とはいえ、設計したロボットが実際に動きだすと、同じ作業内容のロボットをより洗練された・シンプルな設計でつくれることや、それによりメンテナンスやトラブル対応の負担が減らせること、そしてそれらを実現するには、ロボットの設計にあたり基本パターンを意識するのが大切であることが分かってくるはずです。
順次・反復・分岐の3要素は、プログラミング言語を用いた設計開発でも“基本中の基本”となっています。そのため例えば、RPAによる業務改善に携わる人が、同時に何らかのプログラミング言語も学ぶことは、プログラミングそのものだけでなく、RPAの設計を改善する上でも役立つでしょう。
また、RPAの設計には「通常の業務処理完成させた後、徐々に拡張していってもよい」という特徴があります。これはつまり「例外的な処理をしばらく人間に任せてよいなら、その部分を当初の設計範囲から外せる」ことを意味します。
対して、プログラミング言語を用いたシステム構築・アプリケーション開発では通常、利用時のあらゆる工程と場面を想定し、慎重に時間をかけて設計が進められます。RPA導入プロジェクトの中に、そうした違いを理解しているメンバーがもしいれば、「初めから全て網羅しなくてもよい」というRPAの強みを生かし、状況をみながら柔軟に開発計画を立てられるでしょう。
2:開発段階…連携先を自在に選び、高度な活用が可能に
RPAの開発段階ではプログラミングの知識や経験が、ロボットの連携先を広げ、より高度な活用を実現するために役立ちます。
例えば、RPAの典型的な活用事例の1つに「複数のシステムやファイルの間で、データをまとめる・転記する作業の自動化」が挙げられます。こうした自動化を実現するソフトウエアロボットの開発にあたっては、人間と同じ画面を操作させる方法のほか、接続先が用意しているAPI(Application Programming Interface)という仕組みを用いる方法があります。多くの場合、API経由の処理のほうが速く安定していますが、その呼び出しや、やりとりするデータの整理にはプログラミングの知識が求められます。
また、RPAの導入に併せてRPA「以外」の開発も行う場合に、プログラミング言語を利用するケースも考えられます。例えば、「Excelファイルなどから複数のデータを取得して集計する作業」はRPAで自動化できますが、もし外部で高度な処理を済ませたデータファイルが用意できれば、RPA側の開発が大幅に簡素化できます。
そのほか、RPAツールの標準機能にない高度な処理(特殊なデータ変換や独自機能の追加など)をプログラミング言語で実現できる場合もあります。RPAツールの中にはプログラミング経験者を念頭に、プログラミング言語の入力支援機能を備えた製品もありますが、プログラミングの併用が見込まれる個別のRPA開発に関しては、RPAツールベンダーがプログラミング不要とする追加機能を提供している場合もあります。
RPAツールの機能強化が進んだ現在、ユーザーが導入後ただちにプログラミングを交えた開発を強いられることはありません。しかし、プログラミング言語に関する知識が、RPA開発を通じた業務効率化の可能性を大きく広げることは確かだといえるでしょう。
3:運用段階…長期安定運用しやすい仕組みがつくれる
RPAの運用段階では、メンバーの中にプログラミング言語を用いた開発経験者がいると、長期間、安定的にソフトウエアロボットを運用できる仕組みが確立しやすくなります。
プログラミングを用いたシステム開発では通常、関係者多数の大規模運用や、途中で担当者が替わる長期運用を想定に入れています。そのため、開発や運用に関する統一的なルールを、明文で定めて実行します。
RPAにおいても、運用規模が拡大し、また長期にわたるにつれ、こうした仕組みが必要となるのは同様ですが、周囲や先々のことを考えてルールを決める大切さを、最初から認識できるとは限りません。これはRPAツールの導入が「プログラミング未経験の現場担当者が使う端末1台にインストール」といった、個人利用に近い形から始まるケースも多いためです。
RPAはIT関連の特別な知識やスキルがなくても使い始められるとはいえ、もし基本的なポイントさえ押さえないままロボットが増え続けると、やがて稼働中のエラーが多発する、あるいはメンテナンス困難になるなどして、導入目的を達成できなくなるおそれもあります。
そこで、プログラミングを用いた開発運用の経験者が社内、あるいは社外から加わり、なるべくRPA導入当初からプロジェクトをサポートすることが大切になります。長期的視点の持ち主が、ふさわしいタイミングでソフトウエアロボットの開発運用ルールをつくるよう提案したり、自ら進めたりすれば、将来のつまずきを未然に防ぐことができるでしょう。
4:保守段階…迅速なトラブル対応
RPAの保守段階では、プログラミングスキルや、関連するITの知識・経験があると、迅速なトラブル対応に役立ちます。
RPAは稼働中、所定の作業を繰り返しているため、「いきなり止まる」といったトラブルの多くは、ツール自体よりも接続先の改修・不具合といった外部要因によるものです。そのため、トラブルの原因を素早く特定して復旧する上では、RPAはもとより、プログラミングスキルを含むIT関連の幅広い知識を備えていることが、きわめて有益となります。
RPAツールで作成したソフトウエアロボットは、設定変更などでユーザーが容易にカスタマイズできます。したがって、トラブルの原因を突き止める知見さえあれば、応急的な対応はもちろん、より安定したロボットにブラッシュアップすることも可能です。
4 RPA活用時に役立つプログラミング言語
このように、プログラミング未経験者が無理なく使い始められるRPAの活用においても、プログラミング言語について学んだ知識や、プログラミングを伴う開発運用で得た経験は強い武器となりえます。ここからは、実際にどんなプログラミング言語が・いつRPAに関係するかについても見ていきましょう。
言語その1:HTML/CSS(Webブラウザ上の操作)
Webブラウザ上での操作をRPAで自動実行したい場合は、Webサイトに掲載される情報の「構造」と「見た目」に関わるプログラミング言語である、HTMLやCSSの知識が役立ちます。
その具体例としては、ソフトウエアロボットの開発時に「このリンクをクリックする」「この欄に入力する」といった対象を指定する場面が挙げられます。RPAツールでは、同じ対象を複数の方法で指定できますが、HTML/CSSを通じてWebサイトの仕組みを理解していれば、サイト構造や自社のRPA利用環境などを踏まえ、最も確実(=後々エラーを起こしにくい)な方法を選ぶことができるでしょう。
言語その2:VBA(主にExcelの操作)
ExcelやAccessを使って管理しているデータをRPAで自動処理したい場合は、これらMicrosoft Office製品の拡張機能であるプログラミング言語、すなわちVBA(Visual Basic for Applications)に関する知識が役立ちます。
VBAを用いた自動実行機能である「マクロ」をご存じの方は多いことでしょう。RPAによる自動化が特定のアプリケーションやシステムに限られないのに対し、マクロによる自動化はOffice製品が主な対象ですが、両者の用途は一部で重なっており、「RPA・マクロのどちらを使っても自動化できる業務」も珍しくありません。
そのため、「プログラミング不要」「管理機能の充実」といったRPAの強み、また「Microsoft純正なのでExcelの処理が速い」「使い慣れた人が多い」といったマクロのメリットをそろって生かし、両者を適材適所で併用しているRPAユーザーもいます。こうした場面では、VBAの知識がまさに“即戦力”となるでしょう。
言語その3:PowerShell, VBScriptなど(主にWindowsの操作)
Windowsパソコンでの定型作業をRPAで自動化する際には、人が処理するときのマウス・キーボード操作手順をそのまま再現する以外に、OS標準の自動実行機能を利用することができます。これは例えば、「RPAツールを操作する端末が管理の都合上属しているグループ(ドメイン、ワークグループ)や、通信のために割り当てられた番号(IPアドレス)を取得したい」といった場合に、ソフトウエアロボットの設計を大幅に簡素化し、開発・メンテナンスの負担を減らせる方法です。
この方法を使う場合、Windowsで処理を自動実行する命令は「スクリプト言語」というプログラミング言語で書いてソフトウエアロボットに組み込み、ロボットの実行時に呼び出すこととなります。実際に用いるスクリプト言語の具体例としては「PowerShell」「VBScript」「JScript」などが挙げられ、これらに関する知識がもしあれば、RPAの効率的な開発に役立てられるでしょう。
言語その4:Python,JavaScriptなど(主にWeb APIの操作)
オンラインストレージやWebサービスなどに接続してデータをやりとりする作業をRPAで自動化する際には、人が処理するときの画面(GUI)での操作手順をそのまま再現する方法のほか、各サービスが提供する「WebAPI」を通じた処理が利用できます。多くの場合、Web API経由のほうがGUI経由より速く安定して処理できますが、やりとりするデータを整理してAPIを呼び出すには、プログラミングの知識が求められます。
Web API経由のデータ処理に用いるプログラミング言語の具体例としては「Python」「JavaScript」「PHP」「Go」などがあります。Web API関連のRPA開発には、プログラミング不要とする追加機能がRPAツールベンダーから提供される場合もありますが、これらの言語に関する知識がもしあれば、RPAとクラウドを組み合わせた業務自動化が効率的に進められるでしょう。
番外その1:正規表現
RPAで定型作業を自動化する際には、「名称がABCで始まるもの全部」といったように、ある条件を満たすものを指定する場面がよくあります。
こうした場合に、シンプルな文字列(上の例であれば「^ABC」)で条件を満たすグループを表現できるのが「正規表現」と呼ばれる方法です。正規表現そのものはプログラミング言語ではありませんが、正規表現で記述できるプログラミング言語は多数あり(C++、C#、Java、Python、JavaScriptほか)、Webサイト管理ツールの定番であるGoogle Search Consoleも正規表現で検索できるなど、使える場面が意外に多い知識です。
主要なRPAツールはいずれも正規表現をサポートしており、記述か適切かどうかテストしながら開発できる製品もあるので、もし利用経験があればスムーズに使いこなすことができるでしょう。
番外その2:SQL文
RPAによる自動実行でデータベースに接続する際には、入手したい情報を「SQL文」と呼ばれる文字列で指定することがあります。
SQLは「Structured Query Language」の略で、データベースの操作に特化した「問い合わせ言語」に分類されます。つまり、厳密に言うとSQLはプログラミング言語には含まれませんが、「決められた構文で記述した文字列を使ってコンピューターを操作するスキル」という点は変わりません。RPAでデータベースと連携した業務自動化に取り組む場合には、既に業務でSQL文に親しんでいる方々のスキルが存分に生かせることでしょう。
5 プログラミング経験者がいない企業のRPA導入のポイント
RPAと、さまざまなプログラミング言語の関係が分かったところで、ここからは、特にプログラミング経験者がいない企業が、RPA導入をスムーズに軌道に乗せるためのポイントを整理します。
ポイント1:開発運用の委託と社内教育を同時並行
「何らかのプログラミング言語による開発運用経験者がいるRPAユーザーは、RPAの活用方法をマスターするのが早く、プログラミング言語の学習は、ローコードのツールであるRPAを開発運用する上でも役立つ」ということを、ここまでさまざまな例で説明してきました。ただ一方では、「現在社内にプログラミング経験者はいないが、今すぐ実現したい業務効率化のためにRPA導入を検討している」というケースも少なくないはずです。
既に何度も述べたとおり、RPAの活用においてプログラミング言語の知識は有用ですが、必須ではありません。実際にプログラミング関連の知識ほぼゼロという状態からRPAを導入し、軌道に乗せたユーザーは多数実在しており、社外のパートナーから伴走型のサポートを受けながら知識や技術、ノウハウを学び、自走を目指す戦略も、十分現実的です。
そこで、社内にプログラミング経験者がいない企業がRPA導入の成功確率を高めるには、RPAツールの提供元やパートナー企業が提供している導入支援サービス、具体的には「開発運用の一部または全部を委託」「チャットによるリアルタイムの相談」「社内研修向けのEラーニング」といったメニューを比較検討し、自社の実情に合ったものを選んで活用することがカギになります。
ポイント2:最低限の予備知識で高度に活用できるツールを選ぶ
既に触れたとおり、RPAの開発運用を続けていく中では、特にソフトウエアロボットを外部のシステム・アプリケーション・Webサービスに接続させる場面で、、プログラミング言語関連の知識を求められがちな傾向にあります。
そのため、「なるべく早くRPAを導入したいものの、社内人材のスキル面に不安がある」というユーザーは、最低限の予備知識でなるべく高度な活用が実現できるよう、上に挙げたような“接続部”の開発スキルを補う機能提供を積極的に行っているRPA製品を選ぶことが重要となります。
この点で、RPAツール「BizRobo!」の最新版であるver.11.1においては、ツール提供元であるRPAテクノロジーズ株式会社が2021年6月から順次公開している純正の追加機能ファイル「Connector(コネクター)」が利用できます。
ダウンロードしたConnectorファイルに、BizRobo!上でわずかな設定を加えるだけで、「Google Driveとの間でファイルをダウンロード・アップロード」「Word、Excel、PowerPointのファイルをPDFに変換」といった、従来はプログラミングを交えて開発していたようなソフトウエアロボットが簡単に作成できます。
さらに、各Connectorは接続先の仕様変更などを反映して常時アップデートされるため、RPAユーザーの保守負担も減らせる仕組みになっています。
ラインアップや今後の新規公開予定など、Connectorの詳細については、以下からお問い合わせください。
関連ページ:お問い合わせ(RPAテクノロジーズ株式会社)
6 まとめ
直感的な操作でパソコン上での定型作業を自動実行できるRPAツールは、特別なプログラミング知識がない状態から使い始められますが、何らかのプログラミング言語による開発運用の経験者が社内にいる場合や、RPAの開発運用担当者がプログラミング言語も学んでいる場合は、RPA活用を早期に定着させることができ、RPA開発にプログラミングスキルを直接生かせる場合もあります。現時点で社内にプログラミング経験者がいない企業がRPAを早期に導入して最大限活用したい場合は、自社が必要とする機能を、より少ない知識で実現できる製品を選ぶとともに、導入前後にわたる社内スキル向上の取り組みと、外部からの支援を交えた開発運用を、同時並行で進めていくことが大切です。