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の写真講座

« »