エンタープライズ企業のための「次世代RPA」メディア

RPAとマクロ/VBAの違いは?

2020/07/17 コラム



 RPA (ロボティック・プロセス・オートメーション: Robotic Process Automation)の導入をする際に、引き合いに出されるかもしれないのがマクロやVBAである。「自動化ならExcelのマクロやVBAでもできるのでは?わざわざお金を払ってRPAを導入する意義は何なのか?」という意見を持つ人もいるかもしれない。この記事では、そういう人にRPAとマクロ/VBAの違いをどう説明するかを見ていくことにする。

 

Excelマクロにも記録機能があるが

 パソコンを買うと、ほぼついてくるMicrosoft Office。もしくは会社のパソコンでもほとんどの人が標準で入れているであろう。このExcelにもマクロ/VBAという自動化機能が標準で備わっている。最近のバージョンでは、マクロ機能は標準では表示されず、リボンの設定で「開発」タブを表示するようにすると使えるようになる。「マクロの記録」ボタンを押すと、Excel上での操作がマクロに記録される。

 操作を行った後、リボン上の「記録の終了」ボタンを押した後、「マクロ」の編集を開いてみると、以下のように、Excelで行った操作がExcel VBAのコードに変換されていることがわかるだろう。これは、ある意味RPAにおけるレコーダーに近い動作だ。むしろ、Excelのマクロの記録の方が昔からあったものである。

 それでは、この機能を使ってすべて自動化すればいいかというと、それは検討が必要である。以下の点を考慮されたい。

Excelマクロが得意な点

  • Excel内での操作をVBAまたは画面操作でコード化できる
  • 安定的かつ高速な処理が可能。(最近はExcelのバージョンがあがっても、マクロの互換性はほぼ問題ない)
  • ソフトウェアの追加コストはかからない

 

Excelマクロが苦手な点

  • 一度コード化してしまうと、読み解くにはプログラミング技術が必要。編集もVBAコードの変更を行う必要がある。
  • Excel以外のアプリケーションとの連携は(標準では)できない。(できなくはないが、プログラミング上の工夫がかなり必要)
  • VBAエンジニアを追加で雇おうとすると、エンジニアコストがかかる。

RPAを導入したほうがいい場合

  • 使用者がプログラミングスキルを持っていない現場ユーザーの場合。
  • Excel以外のアプリケーションとの連携など、幅広いアプリケーションと連携する業務を扱う場合。
  • 複数人で自動化プロジェクトを行う場合。
  • 組織横断でプロジェクトを実施し、管理、監督、セキュリティ対応などが必要になる場合。

 

RPAを導入しなくてもよい場合

  • Excel内での操作に限定された自動化の場合。
  • 使用者がVBAを扱えるプログラミングスキルがある場合。
  • 自動化プロジェクトを行うのが1人のみの場合。

VBA/マクロにはないRPAの特徴は?

 RPAは、まず使用者が現場で業務を実施していてエンジニアでなくても業務フローを構築できる。開発言語の中では簡単な部類に入るとはいえ、Visual Basicを覚える必要もない※。以下の画面のように、業務フローをドラッグ&ドロップで直感的に構築していくことができ、画面のレコーディング機能で、画面操作をしていくだけで業務フローが自動生成される。

 また、忘れられがちなのが、個人が業務フローの自動化を構築する場面だけでなく、その後の運用、メンテナンス等を組織として行っていく場合である。プロジェクト関係者が複数人いたり組織横断になる場合は特に、管理、監督、セキュリティ対応などのサーバ型RPAの機能が必要となってくるだろう。

 失敗しないRPA導入のために—RPAの種類とそれぞれのメリット・デメリットを知る

 

まとめ: 非エンジニアによる構築や管理機能が必要な場合はRPA

 このように、Excelマクロ/VBAだけで済んでしまう自動化もあるが、エンジニアでない現場ユーザーによる自動化プロジェクトや、複数人/組織横断で管理機能が必要になる場合は、サーバ型RPAも選択肢に入ってくるだろう。

 

RPAソフトによっては、少し高度なことをやろうとするとVisual Basic ScriptVisual Basic.NETの知識とスキルが必要になるものがあるので注意。