【RPA-Excel】 皆が意外に知らない!ExcelマクロとRPAツールはどちらがロボット作成に適しているの?

【RPA-Excel】 皆が意外に知らない!ExcelマクロとRPAツールはどちらがロボット作成に適しているの?

RPAがソフトウェアのロボットだとすると、Excelマクロとどう違うのか?

私もRPAを調査していると、Excelマクロとどう違うのかという投稿記事を良く見かけますが、結局、良く分からないものが多いかと思いますので、もっと簡単に私が説明しますね。これから、RPAをはじめようとする場合、ロボットを作る上で重要なことは、Excelマクロでも十分できる業務に対して、無理にRPAを使う必要がないということです。そのために、ExcelマクロとRPAの得意分野を理解することはとても重要かもしれませんね。

Excelマクロについて

Excelマクロですが、マイクロソフト社のOfficeシリーズのExcelに標準装備されている機能ですね。
マクロは操作を記録させることができて、記録開始~記録終了までを記録して、何度も実行できますよね。

しかも、このExcelマクロもロボット(ソフトウェア)が得意とする、繰り返し作業を得意としており、Excelマクロを作ろうと思うときは、たいてい、同じ作業の繰り返しで面倒!マクロでも組むか!と思ったときですよね。

私もExcelマクロは使ったことがあります。結構、Excelも得意なんですよ(笑)

主人はIT業界の仕事をやっていますので、いつも業務でExcelを使っていようですが、例えば特定のセルが”RPA”の場合にだけ、”RPA.jpeg”の画像ファイルを開いて貼りつけたい・・・というような特定の条件が発生するような場合は、VBA(Visual Basic for Applications)と呼ばれるプログラミング言語を使用しているようですね。

VBAを覚えるとできる範囲も格段に広がります。例えば、フォルダを選択させるエクスプローラーを表示したり、複数のExcelの内容を読み込んで一覧にまとめたりと、非常に便利で、インターネットからの情報収集などもできます。

単純に同じ操作を繰り返す処理でなくても、VBAを使用することで、ロボットを作成することはできるのです。

Excelマクロの得意分野

正直、Excelマクロは非常に便利です。なぜなら、情報を管理する際は一覧にまとめて管理するケースが多いですよね?しかも、使うソフトはExcelが多いですよね・・・というかExcelですよね。

Excelマクロは、Excelを中心とした業務において力を発揮するものであり、WindowsアプリケーションやWEBアプリケーションとよばれるもの、そして情報を検索するためのインターネット利用と、業務の幅が広がっている時代において、Excel以外のアプリケーション連携が得意ではないことは致命的です。

また、VBAを使用する前提ではありますが、アプリケーションを動かして検索結果を取得するロボットを作ろうとすると、VBAはアプリケーションを動かしての情報収集が苦手ですので、アプリケーションが参照しているデータをAccess経由で直接取得したりと、アプリケーションを動かさなくても情報取得ができる別の手法をとります。

また、Excelマクロは単純なExcelの操作には威力を発揮しますが、先ほど説明したように特定の条件の場合など、少し高度なことをやろうとすると、VBAというプログラム言語を勉強しなければならず、ロボットを作成するうえでは、プログラム言語を勉強する手間があり、アプリケーションを動かすのが苦手ということからも、業務ロボットを作成するには限界があるということです。

ロボットを作成したい業務が、ファイル操作やExcel関数の組み合わせで完結する場合には、迷わずExcelマクロ+VBAがベストな選択だと思います。

 

RPAの得意分野

RPAは人間がアプリケーションを操作する感覚で動作を定義でき、プログラム言語を覚えるようなことはないため、RPAのツールを覚える必要はありますが、ロボットを作りたい業務のアプリケーションの操作と、RPAツールの操作ができれば、高度な技術は必要としません。現在、RPAが注目を浴びている大きなメリットのひとつですね。

インターネットから検索結果の情報をExcelに貼りつけるような業務のロボットを作成する場合、人間が行う操作をRPAのツールに定義されば、それだけでロボットが完成します。簡単ですね。

つまり、RPAはアプリケーション操作を行う業務をロボット化するのが得意です。業務をRPAツールでロボット化することをきっかけに、業務の見直しが行われた結果、業務の改善はもちろん、ロボットの作業効率も向上したりなんてこともありますよね。

今、企業が一斉にRPAを導入して実証実験しているのは、この業務改善を含めて、RPAの問題点(課題)を洗い出そうとしているんですね。そして、その課題に対する対応をいち早く取り入れ、実証実験の結果を元に、RPAを各社に提案しながら、コンサル的に導入する時代が来るんですよね。

あとは、ロボットですから、決められた時間に動いて欲しいとか、一つの操作においても動作条件を指定したり、操作の間隔だったりと細かな設定をしたくなりますよ。RPAはそんな操作に対する細かな定義ができます。VBAとの大きな違いのひとつだと覚えておいてください。

なぜ、RPAがアプリケーションを認識できるのか?

Excelマクロとの大きな違いとして、RPAが人間と同じような感覚でアプリケーションを認識できるのかという点ですが、数年前と技術は進化しており、OCRのような文字認識以外にも、色々な技術の進化が考えられています。

人間が目で判断していることをロボットも違う形で行っているんです。

(1)HTMLからオブジェクトを認識

Webアプリケーションを構成しているHTMLやCSSを解析し、操作対象のオブジェクトを認識します。簡単に言うと、マウスの位置から、どのオブジェクトが指定されたのか特定する方式ですね。

単にマウスの位置と言っても、使用する画面の環境が違えば計算も違うので、難しい技術です。

これからも、RPAのオブジェクト認識精度は向上するでしょうし、RPAがやってくれるので任せておけば良いのですが、フレームワークの進化や無数にあるアプリケーションのバージョンから、指定された位置を特定するのは、難しい技術だと思います。なので、ロボットを動かして間違った範囲のデータを取得してしまう現象が発生した場合は、RPAツールにて微調整が必要だと思いますね。ようは、使用するアプリケーションのバージョンが複数ある場合には要注意です。

(2)イメージからオブジェクトを認識

リモートデスクトップは高速に処理を行うために画面イメージで処理されています。(以前から思っていましたが、スピードが早いですよね!)そのため、リモートデスクトップを利用したアプリケーションが対象となる場合には、HTML構成からはオブジェクトが特定できません。そのため、対象が画像になるのですが、そんなときに備えて、OCRを利用することで画面イメージから文字を認識してオブジェクトを特定する方式です。

OCR技術の精度はどの程度向上しているのでしょうか?

当然、認識100%にはならないため、最近では、特許技術で読み込んだ文字を予測するなどの素晴らしい技術が使われていますよね。これも、事前検証で精度を試していくのが一番良いですね。

(3)画面の相対位置からオブジェクトを認識

これが一番分かりやすいですかね。

アプリケーションの画面、例えば左上から右に100px、下に200pxの位置に、”ログインユーザー”というオブジェクトがあるというような特定方式です。これだと、HTMLや画像イメージでなくても認識できますし、対象となるアプリケーションの幅も大きいですね。

 

ExcelマクロとRPAは全く違うもの!

お分かりいただけたと思いますが、ExcelマクロとRPAは得意分野が異なります。間違ってはいけないポイントとして、どちらもロボットは作成できます。(ロボットと言ってもソフトウェアなので・・・)

上図にRPAの守備範囲を示したものがありますが、RPAはアプリケーションの操作でロボットが作成できる、ExcelマクロはExcelの加工を得意としたロボットが作成できるということです。ExcelマクロもVBAを使用すれば、インターネットやデータベースから情報を取得したりと色々なことができるのですが、やはり、Excelができる範囲を得意というべきだと考えます。

ロボットを作成する際、ExcelマクロとRPAが得意とする業務を表でまとめてみましたよ。

ロボット作成業務 Excelマクロ+VBA RPA
Excel操作 ×
Excel操作+ファイル操作 ×
アプリケーション操作 ×
インターネット情報収集
文字認識、画像認識 ×
直接的なデータベース参照 ×
AI搭載予定の業務 ×

【凡例】×=不得意、△=お勧めはしない、○=得意

 

それぞれ得意分野がありますので、どっちが優れているということはありません。これからはますます、インターネットを使用して業務を行うことが当たり前の世界になっていきますので、インターネットの情報と今まで作成してきたアプリケーションの組み合わせにて、新たな“サービス”を提供していく時代になると思っています。

私は商品紹介(Affiliate)においても、ロボットと深く関連する時代がくると思っていますので、これからもRPAとAffiliateの2つをキーワードに、勉強及び皆様への価値ある情報提供ができればと考えております。

 

RPA活用カテゴリの最新記事