この記事では、Microsoftが無料で提供しているRPA『Power Automate Desktop』を使って、Excel(エクセル)から取得した郵便番号を郵便局のWebページで検索し、検索結果となる該当地域をExcel(エクセル)に書き込むサンプル動画と、そのフロー作成方法を説明します。
RPAでニーズの高いExcel(エクセル)の操作とWebページ操作、さらに取得した値をExcel(エクセル)に書き込むといった実用性の高いフローとなりますので、学習中の方やお困りの方は、ぜひご一読ください。
本記事は、変数やUI要素等の用語そのものについては、特に解説していませんので、ご了承ください
Webページの値をExcelに返す
概要
Excel(エクセル)に入力されている郵便番号を、郵便局のWebページで検索。都道府県・市区町村・町域をWebページから取得し、Excel(エクセル)に書き込む。
サンプル動画
サンプル動画では、基本編のほか、3つの応用編のフローも紹介しています。それぞれの応用編の詳細は、後述しています。
フロー全体図
各アクションの設定
1.新しいMicrosoft Edgeを起動する
RPAで多用する「ウィンドウの最大化」は、このブラウザ起動アクションに含まれていますので、とても便利です。(上記「ウィンドウの状態」で最大化が指定可能)
2.キーの送信
郵便番号の入力欄を表示させるため、キーボードの下矢印を7回、押下しています。応用編のフローでは、画像認識を組み合わせて入力欄が表示されるまで、自動的にスクロールするように設定していますが、基本編では一律で7回、押下するようにしています。
3.Excelの起動
ファイルパス(ドキュメントパス)は、通常、変数に格納することが一般的ですが、ここではアクション内に直接設定しています。
4.アクティブなExcelワークシートの設定
特にExcel(エクセル)ブックに複数のシートが存在する場合には、処理対象のシートをこのように指定します。
5.Excelワークシートから読み取り
Power Automate Desktopでは、Excel(エクセル)の行・列を数値で指定します。この見本の場合、セルA2を指定しています。
6.Webページ内のテキストフィールドに入力する
7.Webページのボタンを押します
8.Webページ上の要素の詳細を取得します
9.Webページ上の要素の詳細を取得します
10.Webページ上の要素の詳細を取得します
11.Excelワークシートに書き込み
12.Excelワークシートに書き込み
13.Excelワークシートに書き込み
14.Webブラウザーを閉じる
15.メッセージを表示
応用編1(複数レコード)
上記で説明した基本編のフローでは、Excel(エクセル)に1レコード分しか入力されていないことを前提にしていますが、応用編1では、複数レコード入力されている場合でも、すべての入力分、繰り返して処理するようにフローを組んでいます。
処理の回数については、Excel(エクセル)のA列で最終行を取得して、その最終行の値を繰り返し回数に設定しています。
※正確には、タイトル行を省きますので、最終行-1で設定
応用編2(エラー回避)
ここまでのフローは、Excel(エクセル)に入力されている郵便番号は、すべて正常な値(存在する郵便番号)であることを前提にしていますが、仮に異常な値(存在しない郵便番号など)が入力されていた場合、都道府県・地域名等が表示されませんのでエラーとなり、RPAが停止してしまいます。
RPAは予期しない事態になった場合、その時点でエラーとなり、それ以降の処理は実行してくれません。
応用編2では、予め異常な値が入力されている可能性も含めてフローを組んでいますので、存在しない郵便番号が入力されている場合でも、エラーとなってしまいRPAが停止する事態を回避することができます。
実践的なRPAでは、想定されるエラーはすべてフローに含めて作成し、極力、エラーを発生させない運用を目指すのが普通です。また、今回のサンプル業務では、予めExcel(エクセル)の郵便番号入力列に、データの入力規則を設定し、全角半角の入力ミスや文字の混在を抑止したり、桁数を制限する等の対策はとても効果的です。
応用編3(画像検索)
ここまでのフローでは、郵便局のWebページにアクセスしたあと、郵便番号の入力欄を画面上に表示させるため、キーボードの下矢印を7回、押下していましたが、実際のWebページは運用者側の都合により、画面構成が変わることも想定されます。
そのため、「7回押下する」といった固定的な操作ではなく、目的の項目が表示されるまでスクロールを繰り返すほうが、より実用的です。
応用編3では、入力欄の画像をPower Automate Desktopに認識させて、スクロールの都度、その画像が表示されているか、判定する分岐の処理をフローに組んでいます。
分岐処理>
- 表示されている → 次の処理へ
- 表示されていない → 下矢印を押下
ただし、他のRPAソフトウェアでも同様ですが、「画像認識」の機能には、画像や解像度が変わっただけで、認識できなくなる、という欠点を抱えています。そのため、安定性の面からも、やはり万全なフローとはいえません。
解説(基本編)
はじめに
変数やUI要素などの基本的な内容については、下記の記事で触れていますので、ご参照ください。
Webページからの値取得
前記、「各アクションの設定」で説明している⑧-⑩の工程で、郵便局のWebページからそれぞれ値を取得しています。
<参考~郵便局のWebページ>
都道府県・市区町村・町域と、3つの項目がありますので、それぞれ⑧-⑩の3つの工程で値を取得しています。
- ⑧ → 都道府県名を取得
- ⑨ → 市区町村名を取得
- ⑩ → 町域名を取得
そして、取得した値は、それぞれのアクション内で自動生成されている変数に格納されます。
<見本~⑧のアクション>
上記見本の場合、AttributeValueという変数の中に都道府県名が格納されます。
Excelへの書き込み
前記、「各アクションの設定」で説明している⑪-⑬の工程で、郵便局のWebページから取得した値を、それぞれExcel(エクセル)に書き込んでいます。
<見本~⑪のアクション>
上記見本の場合、変数AttributeValueに格納されている都道府県名がExcel(エクセル)に書き込まれます。