Power Automateを動画で学ぼう!Udemyキャンペーン中

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

目次

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

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

じょじお

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

PADでブラウザ操作

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

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

フローの完成図

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

ダウンロードファイルを開くには、「ブラウザのダウンロードしたら開く」という名前のまさにピンポイントなアクションがあるのですが、なぜかIE(Internet Explorer)でしか使えないアクションでした。

IEはサポート終了が確定しているので、この記事ではこのアクションは使用せず、別の処理で対応しました。

フロー完成品

フローを作成する

STEP
ファイルのダウンロードする処理の作成

▼新しくフローを作成しWebレコーダーを開きます。

フロー作成方法からWebレコーダーの使い方についてのおさらいはコチラ

Webレコーダーの設定

▼ファイルのダウンロードが開始されます。

ファイルのDL開始

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

Webレコーダー終了ボタン
STEP
ファイルダウンロードパスの確認

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

ファイルのDL場所の確認

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

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

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

ファイルの保存場所の確認3
STEP
ファイルを開く処理の流れ

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

上記の方法のようにWebページのリンクをクリックして取得したファイルはPower Automate Desktopで自動認識してくれません。そのため、下記のような処理にします。

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

フォルダの中のファイルが増えるまで待つ。増えたら一番新しいファイルがダウンロードしたやつだから探す。という流れです。

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

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

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

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

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

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

フォルダ―:
先の項で調べたブラウザのダウンロードフォルダのパス(例:C:¥Users¥user¥Downloads)

ファイルフィルター:
今回はエクセルなので「*.xlsx」とします。

STEP
「変数の設定」アクションを追加。

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

変数の設定

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

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

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

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

変数の設定2

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

変数の設定2

①設定:myFileCount2
②宛先: %myFileCount1%

STEP
「ループ条件」を追加。

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

ループアクションの追加

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

ループ条件

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

じょじお

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

STEP
ループの中の処理を追加。

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

ループの中の処理1

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

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

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

並び替え基準

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

変数の設定

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

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

じょじお

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

STEP
Excelを開くアクションを追加。

▼「Excel」→「詳細」→「Excelの起動」アクションを追加します。

最後にExcelファイルを開くアクションを追加します。

Excelを起動するアクション

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

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%と指定しています。

まとめ

じょじお

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

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

この記事が気に入ったら
フォローしてね!

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