RPA(Power Automate Desktop 無償版)を使用しての気づき
マイクロソフト社のPower Automate Desktopの無償版を利用して、RPA(Robotic Process Automation)という技術を体験してみました。RPAは、ソフトウェアロボットを活用してビジネスプロセスなどを自動化する技術の略称です。
ソフトウェアロボットは、人間が行う作業を模倣し、アプリケーション間でのデータのやり取りなどを、ローコードやノーコードのアプローチで処理できます。
反復的な作業やデータの入力、集計、処理、レポート作成などを効率的に自動化することで、各種の作業負担を減らし、作業精度を向上させることが可能です。
今回、Power Automate Desktopの無償版を活用して、以下の機能を実装してみました。
①PDFファイルからテキストデータを抽出し、それをEXCELシートに表としてまとめる機能
②①でまとめた表を読み込んで、既存システムの入力画面へ自動入力処理する機能
③Webスクレイピングの機能
実装の過程で、注意すべきポイントや工夫点などがありました。これらの気づきをまとめ、今回の記事に記載することで、他の方々にとっても有用な情報となると考えています。
なお、Power Automate Desktopの基本操作に関する情報は、他の方々が豊富な情報を提供しています。本記事では、特に実装時の注意点や工夫点に焦点を当て、以下で紹介します。
1. RPAの基本原理
RPAは、ソフトウェアロボットを用いてビジネスプロセスなどを自動化する技術です。この技術の基本原理を理解することで、なぜRPAが効果的なのか、そのメカニズムが明らかになります。
1.1. ソフトウェアロボットの役割
RPAの中心となるのが、ソフトウェアロボットです。これは人間が行う作業を模倣するプログラムであり、主に以下の役割を担います。
1.1.1. データの操作
ソフトウェアロボットはアプリケーション間でのデータをやり取りする役割を担います。これにより、異なるシステム間でのデータ連携が効率的に行えます。
1.1.2. ルールベースの判断
設定されたルールや条件に基づいて判断を行い、適切なアクションを実行します。これにより、自動化されたタスクが柔軟に振る舞えます。
1.1.3. UI操作の自動化
グラフィカルユーザーインターフェース(UI)を操作して、ユーザーが行う操作を再現します。ボタンクリックやデータ入力など、様々なUI操作を自動で実施します。
1.2. ローコードとノーコードのアプローチ
RPAでは、ソフトウェアロボットを構築する際に、ローコードやノーコードのアプローチが採用されることが一般的です。
1.2.1 ローコード
プログラムの知識があるが、専門的なスキルを持たないユーザーがプログラムを少ないコードで構築できる環境を提供します。これにより、開発の効率が向上します。
1.2.2. ノーコード
プログラミングの知識がなくても、直感的なインターフェースを利用してソフトウェアロボットを構築できる環境です。プログラミング不要で自動化を実現します。
これらのアプローチにより、比較的容易に、エンドユーザー自身でRPAを導入・活用することが可能となります。
1.3. ワークフローの設計と実行
RPAの実装では、ソフトウェアロボットが実際の作業をどのように実行するかを設計することが重要です。タスクやフローチャートを作成することで、RPAのワークフローを視覚的かつ具体的に表現することができます。
1.3.1 タスク
タスクは、フローチャート内で個々に実行される具体的な作業や手続きを表します。
1.3.2. フローチャート
フローチャートは複数のタスクから構成され、タスクの実行順や実行条件をフローチャートで定義することで、ソフトウェアロボットが稼働する関係にあります。
RPAの基本原理は、ソフトウェアロボットを活用して作業を自動化することにあります。これにより、反復的で時間のかかる作業を効率的に処理することが可能となり、ビジネスプロセスの効率化や生産性の向上が実現されます。
2. RPAの利点
RPAは、ソフトウェアロボットを活用して業務プロセスを自動化する技術です。このセクションでは、RPAの導入によるビジネス上の利点について紹介します。
2.1. 効率化と作業負担の軽減
RPAは、繰り返しのタスクなどを自動化することで、作業の効率化を実現します。これにより、従業員は非効率な作業から解放され、戦略的かつ創造的な仕事に時間を割くことができます。また、24時間体制で作業が可能なため、作業時間の最適化にも寄与します。
2.2. ヒューマンエラーの削減
RPAは高い精度で作業を実行するため、人為的なエラーを削減します。データの正確性が保たれ、ビジネスプロセスの信頼性が向上します。これにより、ビジネスの意思決定や顧客サービスの向上にも寄与します。
2.3. コスト削減
RPAの導入により、人的リソースを最適化できるため、コスト削減に貢献します。自動化によって作業時間が短縮され、人件費の削減や運用コストの最適化が可能となります。
2.4. スケーラビリティ
RPAはビジネスの成長や変化に迅速に対応できる柔軟性を持っています。新たなプロセスやタスクを追加する際にも比較的容易に対応できるため、ビジネスの拡大などの変化にも対応可能です。
2.5. 従業員満足度の向上
RPAによって、従業員は単調かつ重複作業を避けることができます。これが、従業員のモチベーションと満足度を向上させ、企業文化の向上にもつながります。
これらの利点は、RPAの導入がビジネスに与えるポジティブな影響の一部に過ぎません。適切に導入し活用することで、効率性と生産性の向上、コスト削減、そして従業員の満足度向上など、多くの利点を享受することができます。
3. PowerAutomateDesktopの無償版を活用して実装した機能
実装した機能は、テスト用に作成したもので、エラー処理など(RPAの処理中にエラーが発生した場合のフローやRPAの処理が終了した時、正常終了なのかエラーが発生したのかなどをメッセージBOXで表示するなど)は実装していませんが、驚くほど短期間で実現できました。
3.1. PDFファイルからテキストデータを抽出してEXCELシートにまとめる機能
3.1.1. 概要

3.1.2. 気づき
◆ローコード開発は生産性を爆上げする
私がプログラミングするときに時間がかかっているのが、クラスライブラリの使い方を調べてコーディングすること。制御文(IF、LOOPなど)などの使い方は、プログラミング言語による差はあってもノウハウの流用が効きますが、クラスライブラリは多岐にわたりその扱いが課題になることが多いです。
Power Automate Desktopを用いたローコード開発では、Power Automate Desktopが提供するアクションを使い、少しのパラメータ設定を行うだけで、クラスライブラリを使ったコーディングなしでソフトウエアロボットに組み込む部品が作成できます(例えば、「フォルダ内のファイルを取得する」というアクションを使えば、フォルダ内のファイル名を取得し、配列に格納してくれます)。これらの部品を組み合わせてソフトウエアロボットを完成させていくイメージです。この方法により、プログラミングにかかる時間が大幅に短縮され、生産性は爆上がりしました。
◆システム的発想の重要性
RPAを使ってシステム構築する際に重要になのは、システム間の連携です。ソフトウェアロボットはアプリケーション間でのデータ連携の役割を担う場合が多く、その機能ゆえに作業の効率化などに寄与します。
したがって、アプリケーション間でどのようにデータを受け渡すかなど、データ設計が重要になると感じました。
<データ設計の例>
今回は複数のPDFファイルからテキストを抽出し、既存システムの入力画面の入力項目に転記することを予定していました。繰り返しの転記処理を実装しやすくするため、PDFの1ページに含まれるテキストが1レコード、かつ、固定長レコードになるような整形処理を実装しています。
◆ソフトウエアロボットの処理内容が理解できるドキュメントが必要
エンドユーザー自身でも比較的容易に導入・活用できるRPAですが、処理内容がブラックボックス化しやすいと感じました。処理の修正やソフトウエアロボット担当の引継ぎなどのためには、ソフトウエアロボットの処理内容が理解できるドキュメントが必要と考えます。
◆端末環境への依存
Power Automate Desktopで作成したソフトウエアロボットは、作成されたパソコン環境に依存します。例えばソフトウエアロボットがExcelを自動起動する際、アクション設定でブックの場所(パス)を指定しますが、その場所(パス)が変更されるとソフトウエアロボットは正常には稼働しなくなります。
Power Automate Desktopで作成したソフトウエアロボットは、コピーしてソフトウエアロボットが作成されたパソコン以外のパソコンでも稼働させることは可能です(無償版では一定の制限があります)。ただし、コピー元とコピー先でパソコン環境が異なる場合(コピー元はブックをデスクトップに保存しているが、コピー先ではマイドキュメントに保存しているなど)、ソフトウエアロボットは正常に動作しなくなります。
ソフトウエアロボットを複数人で共有して利用する場合には、共有の都度ソフトウエアロボットを調整する、または、ブックの保存場所(パス)にルールを設けるなどの一定の運用ルールを定める必要があります。
◆PDFファイルからのテキスト抽出(イメージからテキストを抽出)
PDFファイルによっては、データの内容がイメージになっているおり(紙のデータをスキャナで読み取ってPDF化したものなど)、Power Automate Desktopが提供する「PDFからテキストを抽出」アクションではテキスト抽出できない場合があります。こうした場合には、Power Automate Desktopが提供するOCR機能を使用することで対応可能でした。Power Automate Desktopが提供するレコーディング機能を使えば、比較的容易にOCRに関連するアクションを作成し、ソフトウエアロボットに組み込むことができます。
なお、OCRソフトはPower Automate Desktopに入っているTesseractに日本語認識のモジュールを追加でインストールして使用しました。手書き文字の認識にはまだ課題は残りますが、コンピュータで生成された日本語はそれなりの精度で認識できました。
3.2. まとめた表を利用して既存システムの入力画面へ自動入力処理する機能
3.2.1. 概要

3.2.2 気づき
◆開発環境(テスト環境)の整備
今回の作成したソフトウエアロボットは、既存システムへの入力データが格納されているExcelシートから順次データを取り込み、既存システムの入力画面の入力項目に転記し、既存システムの入力処理を自動化するものです。
本番環境の既存システムを使ってソフトウエアロボットを開発するわけにはいかないため、開発に使用可能な既存システムのテスト環境が必要です。
RPAはエンドユーザー自身でも比較的容易に導入・活用できるものの、開発するソフトウエアロボットによっては、社内のシステム部門など他の部門との連携が必要な場合があるため、注意が必要です。
*今回はあくまでRPAのテストですので、Excelのユーザフォームを使って仮想の入力画面を作成し、ソフトウエアロボットの開発を行いました。
◆画面依存性
このテストのような既存システムの入力処理を自動化するソフトウエアロボットの場合、既存システムの入力画面が変更されると、ソフトウエアロボットの改修が必要になる可能性が高いです。
後述するWebスクレイピングの場合にも、スクレイピング対象としているWebページの構造が変わると、ソフトウエアロボットの改修が必要になる可能性が高いです。
◆ショートカットキーの活用
Power Automate Desktopが用意する「キー送信」アクションを使用すれば、ショートカットキーの押下をシミュレーションできます。ソフトウエアロボットを安定して稼働させるために、ウィンドウの最大化表示や閲覧ページの先頭移動など、さまざまなショートカットキーを使用しました。ソフトウェアロボットでもショートカットキーは大いに活躍します。
◆セキュリティ対策
既存システムへの自動入力処理を実現するソフトウエアロボットを作成してみて、改めてセキュリティ対策の重要性を痛感しました。近年、問い合わせメールなどを悪用したチェーンメールに対する注意喚起が、レンタルサーバ運用業者などから行われています。
RPAは便利なツールですが、問い合わせメールなどを悪用したチェーンメールを作成する手段としても機能する可能性があります。ツールの進化がセキュリティにも影響を及ぼしていると改めて実感しました。
3.3. Webスクレイピングを実現する機能
3.3.1 概要

3.3.2 気づき
◆Webスクレイピングの実装は驚くほど簡単
Power Automate Desktopが提供する「Webデータ抽出」アクションを使えば、驚くほど簡単にWebスクレイピングするソフトウエアロボットを作成できました。Webページのスクレイピング対象の設定は、Power Automate Desktopが提供するレコーダ機能を使用してWebページから直接取得することがきます。Webスクレイピング結果をExcelへの書き出す設定もアクションへの設定だけで簡単に行えました。その手軽さに非常に驚きました。
◆Webスクレイピングを禁止としているサイトもあり要注意
サイトによりWebスクレイピングを禁止している場合があります。比較的簡単に実装できるWebスクレイピングですが、使用には注意が必要です。
今回、私は自身のホームページ(ブログ)サイトを使ってWebスクレイピングのテストをしました。
◆Webスクレイピングの用途
先述の通り、社外サイトをWebスクレイピングすることにはリスクが伴います。個人的にはWebスクレイピングは控えたいと考えています。
ただし、使い方によっては有用なケースもあります。それは、社内システム(Webシステム)の活用に関するものです。例えば、社内システムがWebベースで構築されており、画面表示されているリスト(例:販売リスト)を画面表示する仕組みはあるが、そのデータをダウンロードする機能がない場合です。
こうした場合には、Webスクレイピングでのデータ取得を検討する価値はあると考えます。ただ、データのセキュリティ上の懸念もありますので、関連部門との調整を行い、Webスクレイピングでのデータ取得の可否を検討することが重要です。
3.4. その他の気づき
◆RPAツールのコスト
使用するRPAツールにより価格体系は異なりますが、パソコン1台あたりの費用は比較的安価でも、複数のパソコンでRPAツールを活用したい場合には、総額が高額の費用になることがあります。社内での活用シナリオを考慮して、RPAツールの必用数を適切に見積もることが重要だと考えます。
◆ソフトウエアロボットの管理
RPAはエンドユーザー自身でも比較的簡単に導入・活用できるものの、その一方でソフトウェアロボットが乱立しやすく、また、処理の内容がブラックボックス化しやすいと考えます。さらに、他の部門と連携が必要な場合もあります。
ソフトウエアロボット活用に関する一定のルールを設定することが重要ではないでしょうか。
4. まとめ
本記事では、RPAの基本原理と利点、さらにPower Automate Desktopの無償版を活用したソフトウエアロボットの作成を通じて得られた気づきを紹介しました。
RPAはビジネスプロセスの効率化と生産性向上に強力なツールであり、RPAを活用することで、手軽にこれらの利点を享受できる可能性があります。