リモートワークで導入して良かったツール詳しく見る

Power Automate DesktopでWebサイトからファイルをダウンロードして自動で開いてみた。

ぽこがみさま

前回の記事では、Power Automate Desktopを使い、ブラウザを自動操作してWebサイトにログインする方法について解説しました。

じょじお

この記事ではログインしたWebサイトからファイルをダウンロードする方法について解説します。

目次

Internet Explorerの場合はもっと簡単な方法があります。

IEは「Webページのダウンロードリンクをクリックします」アクションが使える。

この記事で紹介する方法はIEを使いたくない人・使えない人向けの方法です。IEの場合は「Webページのダウンロードリンクをクリックします」アクションを使って簡単にできます。下記で解説していますのでご参考になさってください。

Power Automate for DesktopでWebサイトからファイルをダウンロードする方法

Power Automate for Desktopでブラウザ操作

Power Automate for Desktop テストページの図

テストページからファイルをダウンロード

▲テスト用に用意したWebサイトから自動でダウンロードボタンをクリックしてExcelファイルをダウンロードしてファイルを開きます。

フローの完成図

じょじお

下図が今回作成するフローの完成図になります。

Power Automate for Desktop フロー完成品
Power Automate for desktopフロー完成品

フローを作成する。

解説の中で「Webレコーダー」という表記が使われていますが、2021年12月のアップデートで「レコーダー」という名前に変更されていますので読みかえてください。

レコーダーを使ってフローを作成する。

STEP
新しくフローを作成してレコーダーを起動します。
STEP
レコードを開始します。
Power Automate for Desktop Webレコーダーの設定

▲新しくフローを作成しレコーダーを起動します。

Power Automate for Desktop ファイルのDL開始

▲ファイルのダウンロードが開始されます。図ではブラウザにEdgeを使っています。Chromeをお使いの場合、図と異なるかもしれません。

Power Automate for Desktop Webレコーダー終了ボタン

▲ファイルのダウンロードができたらWebレコーダーを終了します。

STEP
レコードによって2つのアクションがフローデザイナーに追加されます。

下記の2つのアクションが追加されました。

  • 「新しいEdgeを起動します」アクション
  • 「Webページのリンクをクリックします」アクション

不要なアクションがレコーダーで追加された場合はゴミ箱アイコンをクリックして削除してください。

STEP
ファイルダウンロードパスの確認
Power Automate for Desktop ファイルのDL場所の確認

▲ブラウザのダウンロード完了のポップアップが表示されたらフォルダのアイコンをクリックしてダウンロードしたフォルダを開きます。

ファイルのDL場所の確認2

▲ダウンロードしたファイルの保存フォルダが開きます。ファイルを右クリックして「プロパティ」をクリックします。

Windows ファイルの保存場所の確認方法

▲ファイルのプロパティが開きます。ファイルの保存場所が表示されるのでメモしましょう。フロー作成のなかで必要になります。

STEP
ファイルを開く処理の流れを確認します。

ダウンロードしたファイルを開く処理を作成します。

上記の方法のようにWebページのリンクをクリックして取得したファイルはPower Automate for Desktopでよしなに開いてくれるアクションはないようです。そのため少し工夫して下記のような処理を考えました。

ダウンロードしたファイルを開く

  1. ファイルをダウンロードする前のフォルダの中のファイル数を調べる。
  2. ダウンロードを開始する。
  3. フォルダの中のファイル数が増えるまで、ファイル数を数え続ける。
  4. ファイル数が増えたらダウンロード完了とみなして次のアクションへ進む。
  5. フォルダの中の一番新しいファイルを探して開く。
じょじお

フォルダの中のファイルが増えるまでループ処理を回し続けながら監視します。ファイルが増えたらそこでループを抜けて、フォルダの中の一番新しいファイルを開く。という流れです。

STEP
「フォルダ―内のファイルを取得」アクションを追加。
Power Automate for Desktop

▲図のように①~⑦のアクションを追加します。

Power Automate for Desktop フォルダ―内のファイルを取得するアクションを使う

▲「フォルダ―」カテゴリの中にある「フォルダ―内のファイルを取得」アクションを1番上に追加します。

Power Automate for Desktop フォルダの中のファイルを取得する

▲パラメータを入力します。

  • フォルダ―:先の項で調べたブラウザのダウンロードフォルダのパス(例:C:¥Users¥user¥Downloads)
  • ファイルフィルター:今回はエクセルなので「*.xlsx」とします。
STEP
「変数の設定」アクションを追加。
Power Automate for Desktop 変数の設定

▲「変数」カテゴリの中にある「変数の設定」を2番目のアクションに追加します。

Power Automate for Desktop 変数の設定1

▲変数の設定を行います。

  1. 変数名を「myFileCount1」とします。
  2. {x}をクリック → Filesの中の「.Count」をクリック → 選択をクリックします。

このアクションで「myFileCount1」という変数の中にダウンロード前のファイル数が入ります。

Power Automate for Desktop 変数の設定2

▲同じようにもう一個変数を作ります。

Power Automate for Desktop 変数の設定2

▲一旦変数「myFileCount1」の値を入れます。

  • ①設定:myFileCount2
  • ②宛先: %myFileCount1%
STEP
「ループ条件」を追加。
Power Automate for Desktop ループアクションの追加

▲「ループ」カテゴリの中にある「ループ条件」をWebレコーダーで追加したファイルダウンロードアクションの下に追加します。

Power Automate for Desktop ループ条件

▲ループ条件のパラメータを入力します。

  • 最初のオペランド:%myFilesCount1%
  • 演算子:と等しい(=)
  • 2番目のオペランド:%myFilesCount2%
じょじお

このループは指定した条件が同じなら回ります。
この時点では%myFilesCount1%と%myFilesCount2%はイコールなので必ず1回はループが実行されます。

STEP
ループの中の処理を追加。
Power Automate for Desktop ループの中の処理1

▲ループの中に「フォルダー内のファイルを取得」アクションを追加します。

フォルダのファイルを取得する

▲フォルダ―とファイルフィルターのパラメータを入力して詳細をクリックします。

Power Automate for Desktop 並び替え基準

「並び替え基準」を作成時間にして「降順」をオンにします。

Power Automate for Desktop 変数の設定

▲「変数の設定」アクションを追加します。

▲パラメータを入力します。

設定:myFileCount2
宛先:%Files2.Count%

じょじお

このアクションでmyFileCount2が更新されます。ファイル数が増えればループ条件が成立しなくなってループが止まり次のアクションに進みます。

STEP
Excelを開くアクションを追加。
Excelを起動するアクション

▲「Excel」→「詳細」→「Excelの起動」アクションを追加します。最後にExcelファイルを開くアクションを追加します。

Power Automate for Desktop Excelを起動するアクション

▲パラメータを入力します。

Excelの起動:次のドキュメントを開く
ドキュメント:%Files2[0].Fullname%

じょじお

「ダウンロード直後は、ダウンロードしたファイルが一番新しいファイルである。」という仮説のもと、一番新しいファイルを指定する意味で %Files2[0].Fullname% と指定しています。なぜこういう記述になるかは後述します。

STEP
フローのテスト

以上でフローは完成です。フローの実行をしてみると、ダウンロード完了後にファイルを自動で開くことができるかと思います。

%Files2[0].Fullname%ってなに?

Excelを開くアクションに渡したパラメータ、「 %Files2[0].Fullname% 」についてもう少し詳しく解説します。このアクションでは、上で述べたように一番新しいファイルを開きたいのです。

一番新しいファイルはどこにあるかというと変数 Files2の一番先頭にあります。これは「 フォルダー内のファイルを取得 」アクションを実行するときに降順で並び替えるように指定しているからです。

Files2 は複数のファイルが入ったリスト型の変数です。リスト型の変数の中から一番最初の値(ここではファイル)を取り出すには、File[0]と指定します。[]の中に渡す数字は添え字あるいはインデックス番号と呼びます。インデックス番号は0から数え始めるので File[0] となります。ちなみに2番目に新しいファイルはFile[1]ですね。

Power Automate Desktop リスト
リスト型変数のインデックス番号

Excelを開くには拡張子を含めたフルパスで指定する必要があるのでFullnameプロパティを使って、%Files2[0].Fullname%と指定しています。

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ

▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。

Power Automate for Desktopの基本をしっかり学習するのにオススメです。RPA界隈では有名なRPAエンジニア集団である『ロボ研』さんが監修されている解説書です。テスト用の業務Webシステム/デスクトップ業務アプリを使いながら実践形式で学習できる点が一番のメリットかなぁと思います。

Power Automateを動画で学びたい方はコチラ

▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります頻繁にセールを実施しているので絶対にセール時に購入してください。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。

UI要素のエラー・フローが正常に動作しない

フローが正常に動作しない場合、下記の記事を参考にUI要素を再取得するかセレクターを編集をしてみてください。

まとめ

じょじお

おつかれさまでした。
ただ開くだけならブラウザの機能でもできますが、ファイル名をキャッチできたので、アクションを追加すればこのまま自動で加工したりメールしたりできそうです!

ノンプログラマーでも自動化スキルを身につける。

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
目次
閉じる