Microsoftの無料RPAソフト、Power Automate Desktopによる請求書作成自動化の手順。
3/152021
カテゴリー:RPA
2021年3月2日より、MicrosoftのRPAソフト、「Power Automate Desktop」が無料で使えることになりました。
(Windows専用ソフトのため、Macでは利用できません)
早速ダウンロードして、
ExcelのデータからマネーフォワードクラウドのWeb請求書作成システムである「クラウド請求書」
へ自動でデータを転記するプログラムを作ってみました。
その手順をまとめてみました。
RPAの用途も、あらためて考えてみました。
これからRPAを使っていきたい方の参考になればと思います。
Power Automate Desktopのダウンロード
Power Automate Desktopは以下からダウンロードできます。
Power Automate Desktop | Microsoft Power Automate
なお、Webと連携するプログラムを作りたい場合には、あらかじめブラウザごとの
拡張機能が必要となります。
ソフトのインストール時に表示されますので、忘れずにインストールしておきます。
Power Automate Desktopの画面
ソフトを起動して、「+新しいフロー」を選択すると以下の画面が現れます。
左の「アクション」に掲げられているものがプログラムの部品のようなものです。
これらを右側のフローの画面にドラッグしてプログラムを作っていきます。
請求書作成自動化プログラム
RPAを作成するときは、
まずざっとで良いので手順を確認すると良いと思います。
確認は、紙に書くことがお勧めです。
今回は、以下のとおりとなりました。
ブラウザ(Chrome)を起動する
↓
Excelを起動して、セル範囲を読み込む
↓
読み取ったデータを、請求書画面に転記していく
↓
Eメールを送信する(入力があるデータのみ)
↓
PDFで請求書ダウンロードする
↓
2行目以降も繰り返し
データの準備
請求書に転記するデータをExcelで準備します。
今回は、このようなデータを準備しました。
MFクラウド請求書の各項目に対応しています。
ブラウザを起動する
ブラウザを起動するには、「Webレコーダー」というメニューを利用します。
すると、使用するブラウザを選ぶ画面が現れます。
私はChromeを使っているのでChromeを選びました。
(なお、UiPathではブラウザは選んでいませんでした)
初期URLをMFクラウド請求書のアドレスにしておきます。
Excelを起動する
Excelを起動するには、「Excelの起動」アクションを選びます。
Excelの起動:次のドキュメントを開くを選択し、
ファイルのあるパスを指定します。
なお、指定されたExcelブックは「ExcelInstance」という変数に格納されます。
セル範囲を読み込む
次に、先ほど作ったデータのうち、転記するセルの範囲を読み込みます。
最初にしておかなければいけないのが、
読み込むデータの最終行と最終列の取得です。
これをしておかないと、毎回セル範囲の指定をする必要が出てきてしまうためです。
最終行と最終列は、「最初に空白となる行と列」です。
ドンピシャで、
「Excelワークシートから最初の空の列や行を取得」
という便利なアクションがあるので使います。
パラメーターは、先ほど格納した変数「ExcelInstance」になります。
(変数は%で囲むルールのようです)
生成された最終列、最終行はそれぞれ「FirstFreeColumn」、「FirstFreeRow」に格納されました。
最終列と最終行を取得できたので読むこむ範囲を指定できます。
「Excelワークシートから読み取り」アクションを選び、
先頭列:1
先頭行:1
最終列、最終行にそれぞれ「FirstFreeColumn-1」、「FirstFreeRow-1」
を指定します。
(「-1」とすることによって、空白になる直前の列と行を取得できます)
なお、「範囲の最初の行に列名が含まれています」を有効にしておけば、
1行目を列名として認識してくれます。
読み込んだ範囲は変数「ExcelData」に自動的に格納されました。
これで、読み込む範囲を指定できました。
右側の変数ウィンドウで、格納されているデータを見ることもできます。わかりやすくて良いですね。
読み取ったデータを、請求書画面に転記していく
変数「ExcelData」に格納したデータを、1行ずつExcelに転記していきます。
1行ずつ処理するアクションは、「For each」というアクションになります。
反復処理を行う値に、先ほど作った変数「ExcelData」を指定します。
反復処理する一つ一つの行データは、「CurrentItem」変数となります。
For eachと、Endというアクションが追加されました。
この間に、転記する作業を入れ込むことになります。
転記していく作業ですが、
Webレコーディングを利用した方が早いです。
一連の動作を、ひとまずデータは適当に、記録していきます。
例えば請求書を作成するには、まず「+」ボタンをクリックしますが、
Webレコーディングをすると要素は赤く表示されますので、
クリックすると要素を認識して記録してくれます。
このような要領でひとまず最後まで記録だけしてしまいます。
ひととおり記録が終わったら、
転記項目を変数に置き換えていきます。
例えば、取引先名を入力する箇所には
先ほど格納した1行ごとのデータの変数である「CurrentItem」を利用し、
インデックス番号を追加して何番目のデータかを指定します。
取引先は一番最初のデータなので、「0」を指定します。(インデックス番号は1からではなく0から始まります)
このような形で、CurrentItem[1]、[2]・・・と指定していきます。
なお、品目数によって条件分岐をIfアクションで行っています。
Ifアクションは、
条件に該当する場合の処理と、それ以外(Else)の処理を指定できます。
品目2が空でない場合(データが入力されている場合)には
それ以降のデータを取得し、
それ以外(Else)は処理なし、ということで作りました。
なお上記は条件が1つでしたが、「Elif」アクションを使えば複数の条件を指定できます。
Eメールを送信する
メールアドレスに入力がある場合は、メール送信まで行うようにしました。
やり方は、上記と同じです。
このような条件も、Ifアクションで作ることができます。
PDFで請求書をダウンロードする
最後に、PDFボタンを押して請求書をダウンロードする処理を追加しました。
「Webフォーム入力」アクションから、「Webページのボタンを押します」を選びます。
UI要素は、Webレコーディングの要領で取得ができます。(Ctrlを押しながらマウス左クリックで選択できます)
注意点
UiPathでもよくあったのですが、
保存をしているときなど、処理と処理との間に時間を置く必要があるときがあります。
そんなときは、「Wait」アクションです。
秒単位で、アクションとの間をとることができます。
(砂時計マークで、分かりやすいですね)
こちらが完成動画です。よかったらどうぞご覧ください。
Power Auto Desktopの使用感
以上、Power Auto Desktopを使ってプログラムを作成する方法をまとめました。
使ってみて感じたことを、書いてみます。
UiPathに比べて、Power Auto Desktopは画面がシンプルと感じました。
特に、UiPathの場合には
レコーディングを何度もしていると入れ子状態になってしまい
みづらくなってしまったのですがPower Auto Desktopはそれがありません。
また、動作が早く、安定していると感じました。
ちょっと試したところ
プログラムが動いている間別のことをしいていても大丈夫でした。
(例えば、ブラウザで他のサイトを見るなど)
マニュアルがすぐ見ることができるのも良いです。
各アクションにはマニュアルへのリンクがついており、
↓このようなマニュアルに飛ぶことができます(説明は難しいけど。。)
エラーもすべて日本語で表示されますので、対処すべきことが分かりやすいです。
もうひとつの無料のRPAソフト、UiPathとどちらが良いか、ということですが
そこまで機能に大差はないかな、と感じました。
ただ初めてRPAを触る人であればUiPathのほうがUIが分かりやすくて良いと思います。
(私はシンプルなものがすきなのでPower Auto Desktopの画面の方が好みです)
RPAの用途
数年前からRPAを試していますが、
あらためてRPAの用途を考えてみました。
業務効率化は様々な種類のものがありますが、
RPAの特徴として「様々なシステムの横断的な効率化」が可能な点があります。
ですので、CSVを活用できるならCSV、Excel内で解決することは関数、Excelマクロ・VBA、Google Apps内で解決することはGAS、
どうしても解決できない場合にRPA
というように最終手段かな、と考えています。
どうしても解決できない具体例としては、
- CSVアップロードに対応していない基幹システム(国のソフト含む)の自動化
- 多数のシステム(Web系含む)が絡む業務
といったものです。
特に1つ目が経理効率化に必要かなと思います。
今回紹介したクラウド会計ソフト等はCSV対応しているものが多いのですが、
大多数は対応していません。そこを無理矢理RPAで自動化して効率化するニーズはあります。
とはいえ上記の用途意外にも
RPAはプログラミングの登竜門としては最適なツールなので、
少し慣れたらExcelVBA、GAS、Pythonなどに進んでいく
というのもありだと思っています。
まとめ
Microsoftの無料RPAソフト、Power Automate Desktopで請求書作成を自動化し、
その手順とRPAの用途をまとめてみました。
これからRPAを触っていきたい、という人に
Power Automate Desktop、是非お勧めです。
編集後記
土日はUdemyで写真講座を受講。
一度ミラーレス、挫折してしまったので再挑戦中です。
最近のあたらしいこと
Udemyの写真講座