+ITのExcel VBA講座担当の河合です。
講師業の傍ら、フリーランスSEとしても様々な案件に参画しており、VBAでの業務効率化には9年ほど、RPAでの業務効率化には3年ほど携わっています。
最近、Microsoftが無償提供しているRPA「Power Automate Desktop」がどれほど使い物になるかという検証を業務で行いましたので、その結果を踏まえて、今後のExcel自動化はPower Automete Desktopか、VBAかという観点でまとめました。
(細かな検証結果ではなく、検証結果を踏まえた所感がメインです)
なるべく専門用語は説明を交えて書いていますので、非エンジニアの方や初心者の方でも理解できる内容になっていると思います。
Excel関連の業務の効率化・自動化を検討されている方のお役に立てば幸いです。
Power Automate Desktopとは?
Microsoftが2021年3月から、Windows10利用者に対して無償提供を開始したことで、「タダで使える自動化ツール」として話題となったRPA製品です。
Windows11には標準搭載されているとのことで、気になっている、あるいは既に使用してみたよという方も多いのではないでしょうか。
RPAというのは、「Robotic Process Automation」の略で、普段人間が行っているPC上の操作を、ロボットに代わりに実行してもらうことができるソフトウェアです。
現在は様々なRPA製品が登場しており、月額数千円程度で利用できるのものから、規模によっては数十万、数百万円かかるものも少なくありません。
非エンジニアであっても操作ができるようなUIであることをアピールしている製品も多く、事務職等の業務担当者自身がロボットを作成することも可能です。
ちなみにPower Automate Desktopは、Power Automateというサービスの一部であり、兄弟ソフトの「Power Automete クラウドフロー」(有料)を利用すると、よりシームレスな自動化が実現可能です。
VBAとは?
MicrosoftのOffice製品を自動化するためのプログラミング言語のことです。
Excelの自動化で使用されることが多く、Excelの「マクロ」という機能もこのVBAでできています。
Excelで行う作業の全てがVBAで表現できるため、RPAが認知される以前は、Excel等のOfficeアプリケーションの自動化といえばVBA(マクロ)と言っても過言ではなかったと思います。
ちなみに、VBAについてちょっと気になる、これから勉強してみたい方へのおすすめ記事はこちら
『今、VBAを学習する理由』
Power Automate Desktopでどんなことができる?
無償提供されているということで、正直、機能面はあまり期待していませんでしたが、検証してみると意外や意外、デスクトップ版RPA製品としての基本的な機能に問題はなく、最初こそ使い勝手に少々難があるものの、そこに慣れれば充分業務自動化に使用できるものでした。
具体的には、下記内容を自動化する機能があります。
- Webブラウザ(Windows Edge/Google Chrome/Firefox)のボタンをクリック、文字入力など
- Excelファイルの読み書き、行列の操作など
- ファイルやフォルダの操作など
- デスクトップ上で動作する業務システムの操作(ものによるため要検証)
- メールの自動送信、検索など
- ドキュメントの印刷、プリンタ設定など
上記以外にも様々な機能が用意されている他、機能として存在しない操作を行いたい場合は、画面上の画像や座標を指定してクリックやキー入力が可能なため、ある程度のことは頑張ってフローを作成すれば実現することができます。
また、レコーダーという機能もあり、Excelの「マクロの記録」のように、自身が行った操作を記録して、自動化することもできます。
他にも、OCR機能(画像内の文字を認識)や、各社コグニティブ(言語解析、画像認識、音声認識等の学習機能)との連携など、より高度な機能も実装されています。
この辺りは私が検証した限りでは、無償版のままでは業務で使えたものではない・・・という印象でしたが、機能面は日々アップデートされていっていますので、今後より精度や操作性が良くなっていくのではと思います。
VBA・マクロはもはや必要ない?Power Automate Desktopの落とし穴
このように見てみると、もはやVBAは必要ないのでは?と思う方もいらっしゃると思います。
RPAの登場やPower Automate Desktop無償提供によって、「VBAオワコン?」といった記事も目にします。
もちろん、Power Automate Desktopの改良によって将来的にはそうなるかもしれないと思いますし、自動化したい業務内容によってはPower Automate Desktopで充分ということもあると思いますが、現状でいうとまだまだPower Automate Desktopの勝利とは言えません。
Power Automate Desktopの落とし穴ともいえる部分や、VBAの方が優れている部分を具体的に紹介していきます。
機能と精度が100%ではない
Power Automate Desktopでは、Excelの値の読み書きやファイル操作等は問題なく、データテーブルという機能があるためRPAでたまにあるExcelの大量データの処理が非常に遅くなるということもありません。
ただし、それ以外のExcelの操作でPower Automate Desktopの機能として実装されていないものもあります。
例えば、数値の表示形式(カンマ区切りや小数点以下表示)の書式設定は可能ですが、セルの色や文字色を変えるといった書式設定の機能は現状ありません。
また、ピボットテーブルを更新するという機能も現状ありません。
このように機能にない操作は、画像認識やショートカットキーを駆使するなど工夫すれば実現はできることが多いですが、その分、画面上の表示の変化やタイミングで操作が失敗しやすくなるなどして精度が落ちることになります。
その点、VBAであれば、Excelの機能は網羅できることと、プログラムが内部で動くため状況によって精度が落ちることはありません。
(メモリ不足などPCの問題は別)
大量データを高速に処理する場合はVBA
先程、大量データの処理が非常に遅くなることはないと記載しましたが、あくまで他のRPAと比較してということであり、VBAと比較すれば処理速度は遅くなります。
Power Automate Desktopに限らず、RPAは基本的には人間が行う動作をそのままロボットが行ってくれるというものなので、コンピュータ内部でプログラムを動かすよりはどうしても遅くなってしまうのです。
ただし、Power Automate Desktopはデータテーブルという機能を利用すれば画面に表示せずに値の処理を行うことが可能なので、RPAの中では比較的効率的な方だと思います。
結局ある程度の学習は必要
Power Automate Desktopに限らずですが、RPAを組むということは、プログラミング自体は行わなくても、プログラム的な論理的な考え方は必要となってきます。
特に条件分岐・ループ・変数・配列・例外処理などのプログラミングの基礎知識と言われるような内容は理解していく必要があります。
RPAを導入してみたが続かなかったという方の中にはこういったところで躓いてしまった方もいらっしゃると思います。
RPA製品の中には、なるべく専門用語を使わず分かりやすい内容になっているものもありますが、Power Automate Desktopは残念ながらそうではありません。
むしろ、変数名に日本語を使用できなかったり、ツール上の機能の名称が英語直訳で分かりにくかったりするという点もあり、非エンジニアの方が使いこなせるようになるまでにはある程度の時間が掛かると思われます。
定期実行など、決まった時間に自動起動することができない(無償版の場合)
VBAであれば、タスクスケジューラやバッチと連携することで、指定した時間に自動起動したり、定期実行することができます。
ただし、Power Automate Desktopは無償版のままでは現状、決まった時間に起動する機能がありません。
Power Automate Desktopで作成したフローは、Microsoft Dataverseというクラウド上に保存されるため、バッチでの実行も不可能です。
ネット上には、なんとかこじつけて自動実行に見えなくもないやり方をしている事例もありましたが、フローを実行中にしたまま待機させておくという現実的には難しい内容でした。
どうしてもPower Automate Desktopを決まった時間に起動した場合は、Power Automateの有償版を購入し、クラウドフローと連携させることは可能です。
両者のメリット・デメリットまとめ
最後に、Power Automate DesktopとVBAのメリット・デメリットを箇条書きにしてみました。
Power Automate Desktopのメリット
- Windows10・11のユーザーであれば、無料で利用できる
- プログラミングを行わなくても自動化ロボットを作成することができる
- RPAとして基本的な機能は揃っているため、ある程度の自動化は可能
- 様々なアプリケーションの自動化に対応している
- アップデートによって今後様々な機能が便利に利用できる可能性がある(OCRやAIなど)
Power Automate Desktopのデメリット
- RPA初心者にとっては、使い勝手が難しい
- 精度が100%とは言えない
- 処理速度が速くない
- プログラミングを行わなくても、論理的思考力やプログラミング基礎知識は必要
- 自動起動ができない(無償版の場合)
- ネット上に参考になる事例の紹介等の情報が少ない
VBAのメリット
- Excelがあれば利用できる
- Excelの機能の全てが自動化できる
- 精度が高い
- 処理速度が速い
- タスクスケジューラとの連携で自動起動ができる
- ネット上に参考になる事例やサンプル等の情報が豊富
VBAのデメリット
- プログラミングのスキルが必要
- Microsoft Office製品やWebブラウザ以外のアプリケーションの操作ができない
以上、いかがでしたでしょうか?
個人的には、どちらも得意不得意があるため、場面によってうまく使い分けたり、連携させて使用できると良いと考えます。
皆様の業務内容の自動化に合うツールを採用するための手助けになれば幸いです。