見出し画像

PowerAutomateDesktop&PowerQueryでWEBとExcel操作を自動化。その①

前回の記事をお読みくださった方、ありがとうございました!
やはりPowerAutomateDesktopに興味をお持ちの方は多いんだなあと思いました。まだ書籍等も発売されていないので、Google検索やYouTubeやTwitterで情報収集して実際に触ってみながら学習されている方が多かったと思うのですが、なんと、前回ご紹介させていただいたあーちゃんさんが、PowerAutomateDesktop初の書籍を出版されることになりました!👏✨
もちろん即予約しました!


1.業務の手順を書く

自動化に向く業務は、法則が決まった作業を繰り返し行っているもの。その観点から毎日、週1、月1など定期的に行う作業を書き出してみました。その中で頻度が高くて時間がかかりやすいものから優先順位をつけていき、今回まずはじめに取り組もうとしたのが、前回の記事で書いていた業務です。

① Webサイト(A)へアクセスし、ID・PASSを入力してログインする。
② チェックボックスへチェックを入れて、csvデータをダウンロードし、名前を付けて所定フォルダへ保存する。×複数回。
③ ②のcsvデータを結合する→条件に合うデータをプルダウンで抽出する→csvデータには入っていない情報を別途Excelからvlookupで紐づけて、今回Webサイト(B)に取り込みたい対象データを整える。
④ ③のデータをWebサイト(B)の取込用Excelフォーマット(※常に所定のフォルダにフォーマットを補完してある)に転記し、フォーマット名に今日の日付を加えた名前を付けて、所定フォルダへ保存する。
⑤ Webサイト(B)へアクセスし、ID・PASS・2段階認証PASSを入力してログインし、④のExcelファイルをアップロードする。

前回の記事に記載したよりも具体的に手順を書きました。PADで組み立てる前に、実際にどんな操作をしているのか?と頭の中で整理してから取り掛かりました。PADにはマクロと同じように記録機能があり、一連の操作を記録してから整形していくやり方もあるのですが、実際触ってみると、基本的にはアクションパーツを使って作っていく方がわたしにはわかりやすかったので、分からない時は記録機能を使いながら進めていきました。

この業務、Webサイト(A)とWebサイト(B)がAPI連携できれば不要なものなんです。だけど今はどちらのサイトも対応しておらず、かといって開発費用もかけられない。RPAに以前から興味はありましたが、費用がかかるし習得にも時間が必要だろう、今はこれでいくしかない、と思っていたのですが、PADを知り、無料だし、デモ動画や実物見てみたら、VBAに触れたことのある者ならもしかして比較的作りやすいんじゃないだろうか?と。その通りでした!

ということで前置きが長くなりましたが、次から順を追ってお話ししていきます。なお、①~⑤について全てはまだ実現できていません!まずできるところから作って使いはじめたところです。楽になって助かっています。


2.Webサイトへログイン→ダウンロードしたcsvを所定フォルダに保存をしてみる。

まずは①②のWebについてPADで作ってみるにあたって参考にさせていただいた動画と記事を共有します。


前回もご紹介させていただいのですが、やはりまずはこの2つの動画です!
1つ目、Microsoft勤務の吉田さん配信のYouTube動画はこれからPADに触れる方でまだご覧になったことのない方は必見です。PADでどんな事ができるの?インストールと基本操作は?レコーダーの使い方は?などから基本的な事が聞けます。あーちゃんさんも登壇されてます!全部見る時間がなくてもYouTubeのページに飛んでいただくと、時間ごとに区切られていてるので、見たいところだけ見ていくこともできますよ。

2つ目、こちらはPADサポートについては先駆者的存在の会社様!ASAHI Accounting Robot研究所:通称ロボ研さんのミニセミナー動画。たった7分の動画で具体的にどんな業務に生かせそうかイメージしやすくなるので必見です!メールの一斉送信ツールも作成したのですが、こちらの動画からヒントを得ました。それについてはまた別の記事ででもお話しできればと思います。

そして、ロボ研さんのサイトではPADのチュートリアルが初級編・中級編とまとめられています。

こちらの記事に最近気づきまして…!こちらを先に知っていれば欲しい情報に早くたどり着けたのにと思いました。こちらの記事を見てくださったみなさんはぜひ他に色々検索する前に先に見てください!とても丁寧にわかりやすく説明くださっています。わたしはとにかく早く形にしてみたくて、動画で概要を掴んでから文字を読む方が早く入ってきやすい傾向がクエリの学習で分かったので、先に動画から学んでいましたが(実際にPADを操作してみながら、動画を一時停止しながら見てました)、文字の方が分かりやすい方はまずロボ研さんのサイトをぜひ!


以下は前回はご紹介していない動画です。
次のYoutube動画では、PADを扱う上で理解必須な「変数」と「UI要素」について詳しくお話を聞きながら学ぶことができてありがたかったです。(次回の勉強会には参加してみたい!https://powerautomatedesktop.connpass.com/ 主催者:Maekawaさん)こちらもYouTubeページの目次から見たい箇所だけ見ていくこともできます。ここにもロボ研さん登場されています。ロボ研さんの講座受けてみたいなあ。

次の動画はこれまで見たことを組み合わせたような自動化事例です。こちらの方からはPowerBI/PowerQueryも勉強させていただいてます!

この辺りを参考にしながら、後はとりあえず触って作ってみました!

① Webサイト(A)へアクセスし、ID・PASSを入力してログインする。
② チェックボックスへチェックを入れて、csvデータをダウンロードし、名前を付けて所定フォルダへ保存する。×複数回。

「リンクをクリックしてファイルのダウンロード」がIEでしかうまくできていなくてですね。実際そうなのか、ほかに方法があるのかがまだよくわかりません。また、「ダウンロードしたデータに名前を付けて保存」がうまくいってないので、一旦名前はそのまま保存する形で以下のような感じで作って利用しています。最初から完ぺきでなくとも、とりあえず作ってみて動かしてみて、一部でも業務を楽にしながらブラッシュアップしていければいいだろうと思ってやってます!
①②については以下のような感じになりました。

画像1


こちらを作成するにあたっての要素は、全て上記の紹介動画や記事の中にありますので具体的な手順説明は今回は割愛させていただきます。


3.Webサイトへログインする(2段階認証があるパターン)

手順⑤の内容となり順番が前後しますが、まずはPADに関する内容を先にお話ししていきたいと思います。なお、先にもお伝えした通り、①~⑤全部完成できている状態ではないです。手順⑤については、「ExcelファイルをWebサイト(B)へアップロードする」で、Webサイト(B)の仕様にも関係しているのか、取得したUI要素のボタンが押せずエラーになってしまって、一旦後回しにしている状態です。
手順①に加えて2段階認証が入りますので、どうやればいいか考えた時に、VBAのメッセージBoxを思い出し、以下のように作りました。

画像2

今度は推奨ブラウザがChromeのシステムなのでChromeを起動してます。先ほどと異なるのは2段階認証があることです。メールで認証コードが届く仕組みなのでメールを受信してその中から認証コードを読み取って入力する…というところまで自動化できる気がするのですがそれはまた改めてチャレンジできればと思います。今回はVBA絡みで思いついたメッセージBoxのアクションを利用しています。

画像4

出てくるメッセージBoxはこんな感じ。

画像5

先ほどの設定で「UserInput]という変数が生成されているので、それを利用します。「Webページ内のテキストフィールドに入力する」アクション→入力するテキストに%UserInput%と設定→「Webページのボタンを押す」アクション追加で2段階認証ログイン完了です。

VBAでは、MsgBox "完了しました!"くらいのコードしか書けなかったわたしがこんなに色々な要件を設定できる。VBAだとここまでできるようスキルを身に着けるには時間がかかると思うのですが、PADだとすぐできちゃうところがすごいところだと思います!ちょっとした事ならExcelファイル内だけで完結できる方が早かったり楽だったりすると思うので、時と場合によって手段の使い分けができると強いだろうなあと思います。

なお、ブラウザですが、ほかにChromeのブラウザを開いている状態で、Chromeを新たに起動するPADを動かすとエラーになるっぽいです。ほかのChromeを閉じてから実行するか、PADで利用するのはメインブラウザ以外にしてもよいかもしれませんね。

さて、次は手順③④、PowerQueryを使ったデータ結合・整形から、PADを使って転記していきます。ここが今回の主役かもしれません。最初はVBAで作ろうと思っていたのですが、以前作った事はあるものの、間が空いていて思い出すところからで腰が重かったところ、PADでやってみたら思っていた以上に簡単で早くて!転記もPADで作っていくことにしました。引き継がれた人もこちらの方が覚えやすそうです。

今日はここまでにして次回のnoteで続きをお話できればと思います!
ご興味ある方はぜひフォローしてお待ちいただけたら励みになるのでうれしいです♪

最後までお読みくださりありがとうございました!

この記事が気に入ったらサポートをしてみませんか?