RPAはExcelマクロ、VBAと比較される事がよくありますが、RPAとExcelマクロは似て非なるものです。業務ユーザーの方でVBAを使いこなしている方は少ないかと思いますので、その違いの詳細は別の機会にして、ここでは業務ユーザーの方々にも理解し易いように、RPAの仕組みをご説明していこうかと思います。
RPAの導入・展開を計画・推進していく上では、これさえ理解していれば、後はツールへの慣れだけです。
RPAとExcelマクロの違い
RPAがExcelマクロの共通点と相違点を下記に整理しておきますのでご参考にして下さい。
ExcelマクロとRPAの共通点
- ユーザーの操作を記録し再生する機能を持つ
- 大規模なシステム開発をして導入するものではなく、ユーザーの日常のPC雑務を自動化するツール
ExcelマクロとRPAの相違点
- ExcelマクロはExcelのファイルそのもの、ワークシートに閉じた処理にほぼ限定されるのに対して、RPAはPC上のほぼ全てのアプリケーションを操作対象とすることが出来る
- RPAは予め決められたルールに従って順番に繰返し処理を実行するがExcelマクロは繰り返し処理に限らない
- Excelマクロはプログラミングが必須だが、RPAはプログラミング不要
- Excelマクロはそれ自体がデータベースアクセスやボタン、チェックボックスなどの機能を持つが、RPA自体はその様な機能は持たず、あくまで他のアプリケーションを人に代わって自動操作するのみ
こうして改めてRPAとExcelマクロを比較すると、業務ユーザーが手軽に使えるデスクトップツールだと言う点以外はあまり似てないですね。
RPAの導入目的・メリット
一般的にRPAを導入する目的としては「業務の効率化」だと思いますが、あまり語られる事がないRPA導入のメリットとして実は下記の様な多くの点が実はあります。
- 業務の効率化
- 業務品質の向上
- 入力ミスやシステム間の転記ミスを低減する
- 夜間早朝など、特定の時間に実施する必要がある処理を代行
- 実行記録(ログ)で実施内容を後から確認可能
- システムテストなどの自動化・再現テストの実施
- 情報セキュリティーの向上
- 基幹システムなどへの追加開発を減らす
また、RPAを導入する目標そのものではありませんが、従来型の大規模システム開発を行う場合と比べてRPAで業務処理を実装することで、下記の様な多くのメリットがあります。
- 基幹システムなどの既存システムに変更を加えることなく業務を自動化できる
- 業務が頻繁に変更になるような場合も柔軟にRPAシナリオを調整することで対応できる
- 既存の基幹システムの間をI/F(インターフェース)開発することなくつなげられる
- 周辺システムのバージョンアップの影響を受けにくい(その部分のRPAシナリオを修正するだけで対応できる)
この辺りの「業務効率化」以外のRPAの導入目的・定性的な効果に関する詳しい話はこちらでご紹介しています。 ⇒
RPAロボの目の仕組み
RPAロボの目にあたる認識の仕組みとして、基本的に下記の4通りがあり、多少呼び名が違っていたりはしますが、どのRPAツールでも基本的な違いはありません。(個別のアプリケーション別にどの認識方法を選べば良いか、こちらでご紹介しています)
そして、以下の4種類は下に行くに従って処理が不安定(間違う)になる可能性が高くなると思って頂いて良いかと思いますが、RPAにも限界や不得意な事があるのは確かですので、その辺りのご説明はこちらでしています。
UI(ユーザーインターフェース)認識
IE(インターネットエクスプローラー)で表示するWebアプリケーションやVisualBasicなどで作成された、Windows純正のアプリケーションは基本的にそのオブジェクト事態をコード・部品レベルで認識します。
オブジェクトとは下記のような、画面上に表示され、入力したり選択するための部品のことです。
- フィールド
- 表示ラベル
- 選択リスト
- チェックボックス
- ボタン
- Excelシート、セル、行、列
など
でこれらの部品(Excel以外)は、アプリケーションを開発する時に画面枠に単に貼り付けるだけのもので、貼り付けたそれらの部品にほ内部的にIDが振られています。従って、そのIDを使ってプログラムの動作を記述したり、表示を変更したりをプログラムを通して変更するように書いていくものです。従って、
処理対象のウインドウが画面上のどの位置にあろうと、拡大・縮小されようと基本的には認識が可能
Windows上のフォルダなどもこの対応になります。
ファイル認識
こちらは、PC上のExcelファイルやCSV(コンマ区切りファイル)などのファイル操作です。こちらもUI認識と同様にWindowsが管理している情報ですので、その処理をRPAから実行できます。
Excelファイルを開いて、あるシートのあるセルを読み取ってコピーする等です。同様にフラットファイル(CSVなど)もファイル操作が可能です。
画像認識
画像認識は、画面上に現れるアプリケーションの画面のデザインや色、レイアウト等を覚えて認識させます。基本的な画面構成が変わらない限り認識できると思って良いかと思います。
但し、場合によって様々な画面遷移があり、見た目が大きく変わるような場合は、その流れを整理して動作シナリオを作成する必要が生じます。
また、画面上でのウインドウサイズやWindowsのテーマの様な色が変わるような設定、チェックBOXの数が条件によって変わってしまうような場合にも影響を受けてしまう可能性があります。
座標指定
こちらは、PCの画面上で処理対象アプリケーション画面・処理フィールドの座標(位置)を認識させて処理します。
よって、昼間PCで作業していた時に対象ウインドウを小さくして帰ったりすると、次回その画面を立ち上げた時に位置が変わってしまいますので、処理が出来なくなってしまったりします。
これらの処理対象を認識する仕組みの中では一番不安定であると言えると思います。
RPAロボの脳の仕組み
RPAはルールに従って単純作業を繰り返す
RPAロボットの脳にあたる機能はルールエンジンです。RPAは基本的に予め決めたルール通りにWindowsパソコンの操作を繰り返しますので、現時点では人が脳で考えて何かを判断するようにRPAが何かを考えて動作をするとは言い難い仕組みです。
RPAは将来AIの頭脳を持つ
現在、急速にAI機械学習の仕組みを取り込んできていますので、早晩、本当の意味での考える脳を持つようになるものと思われます。現時点で想定される考える機能としては下記のようなものでしょうか。
こちらに考えられるAI機械学習とRPAロボットの統合イメージを参考までに記していますので参照してみて下さい。
産業用ロボットの世界と同様にRPAもロボットとしての当然の進化としてAIの頭脳を持つ方向に進んでいます。以下に現時点で考えられるいくつかのRPAとAIを融合した活用イメージをご紹介しておきます。
◆ OCRによる文字認識の向上
紙の伝票をスキャンしてテキスト化するOCRの機能は現時点で70~80%程度と思われますが、ディープラーニングを組み合わせると、その認識率が格段に向上する可能性があります。
◆ 柔軟な例外処理の実現
前述の通り、現在のルールエンジンによる業務自動化では、想定した結果や流れ以外の結果が返ってきたりすると、RPAロボットがエラーで止まってしまいます。この例外処理を人が対応しますが、AI人工知能がその人の対応を学習し、徐々に適切な処理を出来るようになる可能性があります。
◆ RPAロボとの対話
例えば、コールセンター等で顧客からの電話問合せの音声をAI機械学習で音声認識し、テキスト変換することで後続処理をRPAロボットにつなげることが可能となります。
FAQなどの検索もAIで曖昧検索し、回答を音声変換して返すことも可能ですので、電話をかけてきている相手は人間と話しているのかRPAロボットと話しているのかが判らないレベルまでなる可能性もあります。
実際に現在でも、顧客の求めている回答を予測しオペレータ画面に先回りして回答を表示できるレベルは実現されています。
その他にAI機械学習の能力をRPAが持つようになると、出来るようになりそうな事をこちらにまとめていますので、ご参考にして下さい。 ⇒
また、ここでは詳しく触れませんが、RPAとAI機械学習の違いや関係に関してはこちらにご説明していますので、ご参考まで。
RPAロボの手の仕組み
RPAはロボットとは言っても映画で見るターミネーターのようなロボットや産業用ロボットとは違い、Windowsパソコンの中で動作するソフトウエアロボですので、本当の手を持っている訳ではありません。
しかし、Windowsパソコンをあたかも人が手で操作しているように使うことが可能です。API(Application Programming Interface)と言われる一種のソフトウエア間のコネクターのような機能を使ってRPAロボはあたかも人が操作しているようにWindowsパソコンに直接指示を出します。
アプリケーションソフトウエアとシステム的な接続をする訳ではない点がミソで、Windowsのマウスやキーボードを人が操作するように、API経由でWindowsを操作しますので、各アプリケーションに手を加える必要がありません。
各アプリケーションソフトは操作しているのが人間なのか、RPAロボットなのかすら気付いてもいないのです。
また、RPAソフトによっては、需要の高いアプリケーション毎の接続機能を提供していたりもします。これによって各アプリケーションを画像認識や座標で認識するよりも楽に精度よく認識・操作できるようにもなります。
RPAのその他の仕組み
RPAのシナリオを作成する際に、どうしても必要になる機能があります。それは、RPAの動作を制御して繰り返し処理をさせたり、アプリケーション間で値を受け渡したり、繰り返しの回数をカウントしたりする変数の機能だったりします。
シナリオ作成をイメージし易いように、その内の主な機能をご紹介しておきます。
フロー制御
RPAには、単純にPC上の処理を繰り返す以外にシナリオの流れ(フロー)を制御する機能があり、これらを処理フローの間に入れていく事で処理を条件に応じて分岐したり、エラー処理をしたりする事が可能です。
◆ 条件分岐
条件が整った場合には処理Aを実行し、そうでない場合は処理Bを実行します。
◆ 繰り返し
条件が整うまでは処理Aを繰り返します。その他に回数を決めて繰り返したりも可能です。
◆ 例外処理
通常の状態では何もせずに通過しますが、例外が発生した場合は処理Aを実行します。
◆ 別シナリオ呼出し
RPAシナリオAの実行から別シナリオBを呼び出します。また、処理Aでデータを変えながらシナリオ全体を繰り返すような事も簡単にできます。
◆ ウエイト(待ち)
処理Aを実行した後に、処理Bを実行する前に任意の時間の待ち時間を入れます。
ウエイトは、例えば入力対象の基幹システム側の処理タイミングが一定ではなく、バラツクような場合に次の処理に行く前に待ち時間を入れたりします。
これによって十分な待ち時間があれば、相手側の処理が修了して次の処理に移る事が可能となります。無論、待ちを入れるのではなく、エラーが出た場合はその後処理を入れるような事も可能です。
◆ Excel操作
既にExcel内部のデータ処理はExcelマクロである程度自動化されていると言う会社も多いかと思います。この様な業務をRPAで自動化する場合に、せっかくのExcelマクロの機能を無い事にして最初からRPAシナリオを作成する必要はありません。
RPAからこのマクロを呼び出す仕組みがありますので、むしろExcelマクロを含んだ状態でその外側を周辺システムやファイル操作などを通して更に自動化します。
その他にもExcelの操作に関しては、Excelファイルやシート、セルの操作など、RPAに多くのExcel操作機能が標準で備えられています。
◆ RPAの時間起動の仕組み
RPA自体に時間起動の機能を持っているものもありますが、むしろWindowsのタスクスケジューラーに起動時間を設定してRPAを自動実行させます。これによって、Windows OS 自体の正確な時間でRPAシナリオが自動実行されます。
通常、WindowsはNTP(Network Time Protocol)と言われるコンピュータ間の時間を正確に合わせるプロトコルでお互いに時間合わせを出来ますので、アプリケーションの時間よりも正確だと思います。
RPAロボの集中管理
会社内で大規模にRPAを使うようになってくると、どこのPCでどの様な業務処理シナリオを実行しているのかがだんだん判り難くなってきてしまいます。
この様な問題を解決する為に、RPAシナリオを集中管理し、シナリオを処理する各PCに実行ジナリオを割り振ったり、実行スケジュールを管理、実行指示をしたりする機能です。
RPAシナリオを作成する仕組み
これまでのご説明で基本的なRPAソフトウエアのイメージはご理解頂けたかと思いますので、ここからは実際にRPAのシナリオをどの様に作成していくのかをご説明していきたいと思います。
レコーディング機能
Excelマクロを触った事のある方は理解し易いかと思いますが、RPAもExcelマクロと同様に人がWindowsパソコンで行った作業手順を自動で記録(レコーディング)することが可能です。
このレコーディングを行った結果として、RPAが理解できる処理フローが自動生成されますので、単純にレコーディングした通りの動作を反復させるだけであればほぼこれだけで、同じパソコン動作をさせる事が可能となります。
全てのアプリケーションについて自動記録が可能なわけではありませんので、自動記録が可能なアプリケーションについて、こちらでご紹介しています。
RPAフロー修正機能
Excelマクロもそうなのですが、自動記録させた動きをそのまま実行させてもあまりイメージしていた自動動作にならない場合が殆どです。
- 自動レコーディングした1回で修了してしまう
- 何かアプリケーションやマスターデータなどの条件によって動作を変えたいような場合がある
- 自動登録する値やWeb検索する値をパラメータとして外部から与えたい場合がある
- レコーディングで出来た動作フローを繋げて連続的に動作させたい、または分割したい
- 自動レコーディングしたフローを手直し修正したい
など様々な理由がありますが、この様な場合にRPAの動作フローを直接修正する事になりますが、この動作フローは業務フローを1段階詳細化してプログラムの流れをフローとして記述するレベルです。
よって、VBA等簡単なプログラム言語でも良いので、プログラムを記述した経験があると理解が早く、プログラムを直接記述するのに比べて遥かに楽だとRPAのありがたみを実感できるかと思います。
そしてここで、上記の条件分岐や繰り返し、例外処理などのフロー制御用の部品を活用することになり、外部から処理対象の値を与えたり、処理回数を数えるたりする為に内部パラメータが使えるようになっています。
デバッグ機能
そして、ある程度まとまったRPA処理フローが出来たら、実際に動かして、意図した通りの動きをするか確認していくことになります。
デバッグのやり方としては通常の開発言語でのデバッグと同様に、処理ブロック毎に実行して処理結果を内部パラメータの値などで確認していきます。
通常のRPAシナリオ(フロー)は数百ステップ以上になってきたりしますので、デバッグもある程度慣れが必要となり、プログラムの経験があると早いかと思います。
WinActorでデバッグに使用できるツール類をこちらでまとめてご紹介しています。
RPAには向かない業務・限界
当然、RPAにも「向く業務と向かない業務」があり、あらゆる業務を自動化できる訳ではありません。特に、下記のような特徴があると現時点のRPAロボだけでは自動化が難しいと考えて業務フローを設計する必要があります。
こちらに、RPAロボットの導入事例と対象業務の選定のポイント、その業務効率化効果などをまとめていますので、参考にして頂ければと思います。⇒
- 条件(分岐)が複雑
- 人の判断が間に入る(例外の判断など)
- 多くのパターンのエラーが発生する
- 繰り返しサイクルの時間が大きく異なる(遅延する場合など)
- Macでの処理
- PC上のデータになっていない(Fax、紙の伝票など)⇒ OCRソフトと組み合わせます
この様な場合も業務フローの設計を工夫して同じ操作対象アプリケーション毎にRPAロボを標準化・共通化するなど、考えることでRPAロボの導入効果を出すことは十分可能です。
RPAのデメリット・リスク
ここではあまり語られる事の無いRPA導入のデメリットやリスクに関して多少触れておこうかと思います。
先ずあげられるのが、上記でご理解頂けた通りRPAはプログラム不要とは言っても、プログラム言語の理解や記述経験がないと厳しいと言う点です。
確かにこれまでの大規模システム開発に比べれば楽なのですが、RPAの場合は単なるシステムの開発・保守ではなく自社のコア業務を自動化するため、従来のシステム開発のように外部ベンダーに丸投げする事が出来ないのです。
本業の外部依存は高額な委託費用以上に、採り得る経営戦略の幅を狭め、スピードを失わせる
詳しくはこちらでご説明していますので、参照下さい。 ⇒
しかし、日本のホワイトカラー業務の生産性が低い点が従来から指摘され、これから急激な人口減少により労働力不足が深刻化していく事は明らかです。考えられる対策は労働生産性を改善していくか移民を受け入れる位しか無さそうに感じます。
下のグラフは2000年と2030年の日本の人口ピラミッドですが、30年で日本の人口は2000万人以上減少し、地方では3割減になるのが確実です。
そして、47年後の2065年には日本の人口は8808万人、生産年齢人口は51.4%まで落ち込むのは確実な状況となっています。働く人が減る分を補うには仕事のやり方を効率化するしかなく、その術は今のところRPA位しかないものと思われます。
弊社では、RPA作成から運用までを丸抱えするのではなく、既存社員の方々にRPAを前提とした業務整理やRPAシナリオ作成、運用のノウハウを移転する進め方を基本としたご支援をさせて頂いております。 ⇒