ボーカルリムーバーオンライン無料
Power Automate Desktopを体系的に学ぶならUdemy【初回ユーザ限定・最大96%割引】

Power Automateについて詳しく解説します

  • ファイルを自動でダウンロードしたい
  • ひとつずつダウンロードするのは大変なので、一気にダウンロードできるようにもしたい

仕事でどこかのサイトやサーバーからファイルをダウンロードする業務は、よくあると思います。

特にデータの更新や取得が必要な場合、毎日・毎月追加されるデータをダウンロードするでしょう。

 

しかし、この作業を毎回手作業となると、面倒ではないでしょうか。

実はPower Automate Desktopを活用すれば、サイトからのダウンロードも自動化が可能です。

Power Automate Desktopはデスクトップ上のアプリを操作を自動化できるだけではありません。

ブラウザーも操作できるため、ダウンロード作業も自動化できます。

 

そこで、この記事ではファイルを自動でダウンロードする方法を詳しく解説します。

拡張機能のインストールから単一のリンクからのダウンロード、また応用として複数のリンクからダウンロードする方法についても解説いたしますので、ぜひお読みください。

今回の記事の内容は少し難しい部分もありますが、マスターすれば日常の業務を大幅に効率化できるでしょう。

 当記事に記載した手順は、すべてPower Automate Desktopの無料版で作成した手順です。

 
Power Automate Desktopで作業自動化の電子書籍を出版しました!
📘ヘルプデスクが面倒な作業を超自動化する全方法 メール自動化編
著:やまもとてつや

Tipstour初の電子書籍化!

37歳で初の正社員となりITヘルプデスクとして勤務中の著者が、Power Automate Desktopを使った8つのメール作業・自動化事例とその方法を本書でご紹介しています。

これを読めば、ヘルプデスクの担当者はもちろん、WindowsPCで作業するすべてのワーカーの面倒なメール作業を自動化可能です。

Kindle Unlimitedで読み放題対象!
(30日間無料体験アリ)

【前提】ブラウザーを操作するには拡張機能が必要

前提として、ブラウザーの操作には拡張機能をインストールしなければいけません。

代表的なブラウザーであるChromeとEdgeとで方法を解説します。

Google Chromeの場合

まず、Chromeウェブストアにアクセスし拡張機能のページを開いてください。

ページが表示されたら、Chromeに追加ボタンをクリックします。
how_to_automatically_download_from_a_website1
次の画面で拡張機能を追加をクリックします。

how_to_automatically_download_from_a_website3

クリックすると、下記画面が表示されます。

how_to_automatically_download_from_a_website2

Microsoft Edgeの場合

Edgeアドオンのサイトにアクセスしましょう。

サイトが開いたら、インストールをクリックしてください。
how_to_automatically_download_from_a_website4
次の画面で、拡張機能の追加をクリックします。
how_to_automatically_download_from_a_website5
下記画面が表示されたらOKです。
how_to_automatically_download_from_a_website6

ブラウザーからファイルをダウンロードする

では、ブラウザーからファイルをダウンロードしてみましょう。

今回は、金融庁のNISA関連ページからExcelファイルをダウンロードしてみます。

ブラウザー自動化アクションから、新しいChromeを起動する新しいMicrosoft Edgeを起動をドラッグ&ドロップしてください。
how_to_automatically_download_from_a_website7

画面が変わったら、初期URL欄にhttps://www.fsa.go.jp/policy/nisa2/about/tsumitate/target/index.htmlと入力します。
how_to_automatically_download_from_a_website8

入力後、一度フローを起動してみましょう。

下記画面が正常に開かれているかを確認してください。
how_to_automatically_download_from_a_website9

問題なければPower Automate Desktopに戻り、Webページのリンクをクリックをドラッグ&ドロップしましょう。
how_to_automatically_download_from_a_website10

画面が変わったらUI要素の欄をクリックし、UI要素の追加をクリックします。
how_to_automatically_download_from_a_website11

ブラウザが表示されたら、Excelのリンクにカーソルを合わせてCtrl+左クリックしてください。

マルチディスプレイの方はPower Automate Desktopが起動している側のディスプレイにブラウザを持ってこないと、UI要素ピッカーが起動しません。

how_to_automatically_download_from_a_website12

画面が戻ったら、UI要素欄が入力されているかを確認し保存します。

how_to_automatically_download_from_a_website13

では、フローを実行してダウンロードフォルダを見てみます。

how_to_automatically_download_from_a_website14

Excelファイルがダウンロードできました!

【応用】複数のリンクからダウンロードする方法

単一のリンクからダウンロードできるなら、複数でもできるだろうと思いフローを作ってみました。

今回は僕も利用しているChatworkから領収書を一気にダウンロードしてみましょう。

 

Chatworkでは以下の画面で、請求書や領収書を発行します。

how_to_automatically_download_from_a_website44

この発行ボタンをどんどんクリックして、領収書を一括でダウンロードしてみましょう。

以下5つのステップで解説いたします。

  • 【ステップ①】ブラウザを開く
  • 【ステップ②】Webページからテーブルを抽出する
  • 【ステップ③】Loopアクションで繰り返し処理の準備をする
  • 【ステップ④】Loopアクションの中身を作る
  • 【ステップ⑤】ブラウザを閉じる

【ステップ①】ブラウザを開く

まずはChatworkの請求書・領収書ダウンロードページを開いてみましょう。

ブラウザー自動化アクションから新しいChromeを起動するを中央にドラッグ&ドロップしてください。

how_to_automatically_download_from_a_website40

画面が変わったら、初期URL欄にhttps://www.chatwork.com/service/packages/chatwork/subpackages/pay/history.phpと入力します。

how_to_automatically_download_from_a_website8

URLを正しく入力したら保存し、フローを起動してみましょう。

下記のページが開かれているかを確認します。
how_to_automatically_download_from_a_website15

確認できたら、ブラウザは閉じずにそのままにしておいてください。

【ステップ②】Webページからテーブルを抽出する

Chatworkのページから、領収書の発行ボタンを含めたテーブルのデータを抽出します。

ステップ②の目的は、発行ボタンを含めたテーブルが何行で構成されているかを確認するためです。

 

ブラウザー自動化アクションのWebページからデータを抽出するを中央にドラッグ&ドロップしてください。
how_to_automatically_download_from_a_website16

画面が変わります。

how_to_automatically_download_from_a_website41

ブラウザに戻ると、ライブWebヘルパーが起動します。

how_to_automatically_download_from_a_website17

上記の画面で、領収証の発行ボタンにカーソルを合わせてください。
how_to_automatically_download_from_a_website18

カーソルを合わせたら右クリックをし、HTMLテーブル全体を抽出するをクリックしてください。
how_to_automatically_download_from_a_website19

抽出プレビューが表示されるので、下記画面が表示されたら終了をクリックしましょう。
how_to_automatically_download_from_a_website20

さらに画面が変わり、以下の抽出されるデータの概要欄が埋まったら保存してください。
how_to_automatically_download_from_a_website21

最後に、生成された変数としてDataFromWebPageという新しい変数が生成されているのを確認します。

【ステップ③】Loopで繰り返し処理の準備をする

Loopを使って、全ての領収書発行ボタンをクリックできるようにしましょう。

ループアクションからLoopを中央にドラッグ&ドロップします。
how_to_automatically_download_from_a_website22

画面が変わったら、以下のように入力してください。

how_to_automatically_download_from_a_website24

  • 開始値:0
  • 終了:%DataFromWebPage.RowsCount - 2%
  • 増減:1

開始値の欄は抽出したテーブルデータは一番上を0番目としてカウントするため、0にしています。

終了欄にある%DataFromWebPage.RowsCount%は、ステップ②で抽出したテーブルの全行数です。

全行数から2行引けば、決済履歴一覧の行と項目の行を除外できます。

 

なお、ステップ②で抽出したテーブルのプレビューには、決済履歴一覧の表示はありません。

この辺りはHTMLの知識がないと難しいのですが、目安として抽出したテーブルの外枠には緑色の点線があります。

点線に注目して、プレビューと実際のテーブルとで違う場合は除外する行数を調整するといいでしょう。

ちなみに、行数分引かないとエラーが発生するので注意してください。

how_to_automatically_download_from_a_website23

増分を1ずつ増やしループごとに参照する行が1つずつ下にズラすことで、領収書の発行ボタンを1つずつクリックできます。

全ての情報を入力したら、保存してください。

 

生成された変数として、LoopIndexが生成されました。

LoopIndexはテーブル内で処理する行が何番目かを表し、ループするたびに1ずつ増えていきます。

【ステップ④】Loopアクションの中身を作る

Loopの中身を作成していきましょう。

 

領収書の発行ボタンを自動でクリックさせる

ブラウザー自動化アクションからWebページのリンクをクリックをLoopとEndの間にドラッグ&ドロップします。
how_to_automatically_download_from_a_website25

画面が切り替わったら、UI要素欄をクリックしてUI要素の追加をクリックします。
how_to_automatically_download_from_a_website11

ステップ①で開いたブラウザに戻り、領収書の発行ボタンの上でCtrlキーを押しながら左クリックします。
how_to_automatically_download_from_a_website26

UI要素が追加できたら、いったん保存してください。
how_to_automatically_download_from_a_website27

このままフローを起動すると、同じ領収書の発行ボタンが繰り返しクリックされてしまいます。

修正するためには、UI要素の編集が必要です。

 

UI要素を編集する

フローに戻り、画面右上のUI要素アイコンをクリックします。
how_to_automatically_download_from_a_website28

画面が変わったら、さきほど取得したUI要素をダブルクリックしてください。
how_to_automatically_download_from_a_website29

再び画面が変わります。

この画面でUI要素を編集して、全ての領収書発行ボタンをクリックできるようにします。
how_to_automatically_download_from_a_website30

UI要素の編集によって、特定のボタンだけをクリックしたりHTML要素をかき集めてテーブル形式に変更したりできます。

 

では、UI要素(HTML要素)を確認する方法ですが、Google Chormeでは該当のサイトで確認したい項目を右クリックをして検証をクリックします。

how_to_automatically_download_from_a_website42

Edgeであれば、開発者ツールで調査するをクリックしてください。

how_to_automatically_download_from_a_website45

要素を確認すると、IdやClassにreceiptという単語が含まれているのがわかります。

how_to_automatically_download_from_a_website43

単にInputだけを指定してしまうと左隣の請求書ボタンもクリックしてしまうので、receiptを含むinputと指定すれば全ての領収書発行ボタンをクリックできそうです。

では、実際にUI要素を編集してみましょう。

今回はidにreceiptが含まれているinputを指定するように編集します。

 

いったん全ての要素のチェックを外し、一番下のInput buttonだけにチェックを入れプレビューにinputと書かれているのを確認してください。
how_to_automatically_download_from_a_website31

確認後、idにチェックを入れたら演算子を含むに変更します。

idの後に*が入ったのを確認したら、値欄にreceiptと入力します。
how_to_automatically_download_from_a_website32

これでidにreceiptが含まれているinputを指定できました。

テキストエディターでUI要素を直接編集する

UI要素を編集しても、一番上の発行ボタンしかクリックできません。

その発行ボタンが何番目のボタンなのかも指定しないとダメだからです。

 

そこでループごとにそのボタンが何番目のボタンなのかを指定するため、UI要素を直接編集してみましょう。

右上にあるテキストエディターのスイッチをONにしてください。
how_to_automatically_download_from_a_website33

画面が変わり、直接UI要素を編集できるようになります。
how_to_automatically_download_from_a_website34

何番目の要素かを指示するには、要素の最後に:eq(数字)と入力します。

今回のテーブルで、最初の要素を指定するにはeq(0)と入力すればOKです。

テーブルの行を1行ずつズラすためには、このeq内の数字が変わるようにしなければいけません。

 

そこで、数字欄にステップ③で生成した%LoopIndex%を入力します。

つまり、以下のように入力します。

input[id*="receipt"]:eq(%LoopIndex%)

how_to_automatically_download_from_a_website35

LoopIndexに最初に指定した数字は0なので、ループするたびに1ずつ増え指定するボタンが1行ずつズレます。

入力が終わったら、保存して終了です。

注意点として、テキストエディターをOFFにすると編集したUI要素が無効になるので注意してください。

【ステップ⑤】ブラウザーを閉じる

処理が終わったら、ブラウザーを閉じましょう。

ブラウザー自動化アクションからWebブラウザーを閉じるをEndの後にドラッグ&ドロップします。
how_to_automatically_download_from_a_website36

画面が開いたら、そのまま保存します。
how_to_automatically_download_from_a_website37

ここまでできたらフローを実行し、ダウンロードフォルダを見てみましょう。
how_to_automatically_download_from_a_website39

全部ダウンロードできました!

今回のフローは下記になります。
how_to_automatically_download_from_a_website38

まとめ

以上、Webサイトからファイルを自動でダウンロードする方法について解説しました。

 

単一のファイルだけでなく、複数のファイルを一括ダウンロードできればブラウザー操作のスキルは格段にあがるでしょう。

もちろん、ファイルだけダウンロードしたら終わりではありません。

後続の作業も自動化できれば、生産性が飛躍的に向上します。

 

ぜひ、試してみてください。