「毎朝Webサイトを開く」「検索条件を入力する」「一覧表を選択してコピーする」「Excelに貼り付けて保存する」――こうした作業を、毎日同じ手順で繰り返していないでしょうか。
1回あたり数分の作業でも、毎日続けば大きな時間になります。さらに、コピー範囲を間違えたり、貼り付け先をずらしたり、保存を忘れたりと、単純作業だからこそのミスも発生しやすくなります。
そこで便利なのが、MicrosoftのRPAツールPower Automate for desktop(PAD)です。
PADを使えば、Microsoft Edgeの起動からWebページ上の表データの抽出、Excelへの書き込み、ファイル保存、ブラウザー終了までを一連のフローとして自動化できます。
しかも、WebスクレイピングのためにVBAで複雑なHTML解析コードを書く必要はありません。PADのWebデータ抽出機能を使えば、実際のWeb画面を見ながら取得したい表を指定できます。
この記事では、Power Automate for desktopでWebサイトの表データを取得し、新しいExcelファイルへ保存する基本フローを、初心者向けに順番に解説します。
指定したWebページをEdgeで開く → Web上の表をデータテーブルとして取得する → Excelを新規起動する → A1セルから表を書き込む → Excelファイルを保存する → ブラウザーを閉じる、という一連の作業をPADだけで自動化します。
【結論】完成するPADフローの全体像
今回作成するフローは、次のような構成です。
1. 新しい Microsoft Edge を起動する
└─ 指定したWebページを開く
2. Web ページからデータを抽出する
└─ Web上の表をデータテーブルとして取得
└─ 出力変数:%DataFromWebPage%
3. Excel の起動
└─ 新しいExcelドキュメントを作成
4. Excel ワークシートに書き込む
└─ 値:%DataFromWebPage%
└─ 開始列:A
└─ 開始行:1
5. Excel を閉じる
└─ ドキュメントを保存する
└─ 指定フォルダへExcelファイルを保存
6. Web ブラウザーを閉じる
└─ Microsoft Edgeを終了
ポイントは、Webページ上の表を単なる文字列ではなく、PADの「データテーブル」として取得することです。
取得したデータテーブルをそのままExcelへ書き込めば、行列構造を維持した状態で一覧データを貼り付けられます。
| 処理 | 使用するPADアクション | 主な役割 |
|---|---|---|
| ブラウザー起動 | 新しい Microsoft Edge を起動する | 対象Webサイトを開く |
| Webデータ取得 | Web ページからデータを抽出する | 表データをデータテーブル化する |
| Excel起動 | Excel の起動 | 新規Excelファイルを作る |
| Excel出力 | Excel ワークシートに書き込む | 取得した表をA1から書き込む |
| 保存 | Excel を閉じる | Excelファイルを保存して終了する |
| ブラウザー終了 | Web ブラウザーを閉じる | Edgeを閉じる |
事前準備:Microsoft Edgeのブラウザ拡張機能を確認する
PADからWebブラウザーを操作する場合は、最初にMicrosoft Power Automateのブラウザ拡張機能が利用できる状態になっているか確認しておきましょう。
PADでは、ブラウザー上のボタンや入力欄、テーブルなどをWeb UI要素として認識して操作します。そのため、ブラウザー側との連携が正しく行われていないと、Webページ上の要素を取得できません。
特に初めてWeb自動化を作成するPCでは、次の点を確認してください。
- Power Automate for desktopがインストールされていること
- Microsoft Edgeが利用できること
- Power Automateのブラウザ拡張機能が有効になっていること
- 会社PCの場合、ブラウザ拡張機能が組織のポリシーで無効化されていないこと
EdgeとPADの連携状態を確認してください。会社管理のPCでは拡張機能の追加・有効化が制限されていることもあるため、その場合は情報システム部門などへの確認が必要です。
実践1:「新しい Microsoft Edge を起動する」で対象サイトを開く
まずは、自動化対象のWebページをMicrosoft Edgeで開きます。
PADのアクション一覧から「新しい Microsoft Edge を起動する」をフローへ追加します。
【アクション】
新しい Microsoft Edge を起動する
【設定例】
起動モード:
新しいインスタンスを起動する
初期 URL:
https://example.com/search
ウィンドウの状態:
標準
【生成されるブラウザー変数】
%Browser%
初期URLには、実際に一覧データを取得したいページのURLを指定します。
たとえば社内システムでログイン後に検索画面へ移動する必要がある場合は、ログインページを初期URLとして指定し、その後に「Webページのボタンを押します」「Webページ内のテキストフィールドに入力する」などのアクションを追加しても構いません。
ブラウザー変数 %Browser% とは
「新しい Microsoft Edge を起動する」を実行すると、起動したEdgeを操作するためのブラウザーインスタンスが変数として保持されます。
この記事では便宜上%Browser%としています。
後続のWeb操作では、「どのブラウザーを操作するのか」をこの変数によって指定します。
フロー内でEdgeを複数起動する場合は、ブラウザー変数を取り違えないよう注意しましょう。
実践2:「Web ページからデータを抽出する」で表を丸ごと取得する
今回の中心となるアクションが、「Web ページからデータを抽出する」です。
この機能を使うと、Webページ上に並んでいる一覧表をPAD側で読み取り、複数行・複数列を持つデータテーブルとして取得できます。
Webデータ抽出の基本手順
- PADで「Web ページからデータを抽出する」をフローへ追加します。
- データ抽出用のWebヘルパーを起動します。
- ブラウザー上で取得したい表へマウスを移動します。
- 対象となる表または表内のセルを右クリックします。
- 表として認識されている場合は「HTML テーブル全体を抽出」を選択します。
- 抽出対象として認識された列と行を確認します。
- 設定を保存してPADへ戻ります。
【アクション】
Web ページからデータを抽出する
【Webブラウザーインスタンス】
%Browser%
【Web画面上での設定】
対象テーブルを選択
↓
右クリック
↓
「HTML テーブル全体を抽出」を選択
↓
抽出対象の列を確認
↓
完了
【出力変数】
%DataFromWebPage%
【変数の種類】
DataTable
成功すると、Webページ上の表が%DataFromWebPage%というデータテーブル変数へ格納されます。
「HTML テーブル全体を抽出」が表示されない場合
見た目が表になっているWebページでも、内部のHTMLが必ず<table>形式になっているとは限りません。
最近のWebシステムでは、div要素などを組み合わせて表のように表示しているケースもあります。この場合、PADがHTMLテーブルとして認識できず、「HTML テーブル全体を抽出」が表示されないことがあります。
その場合は、表内の同じ列にある複数の値を順番に指定し、PADに繰り返し構造を認識させます。
【HTMLテーブルとして認識されない場合】
1行目の商品名を選択
↓
「要素の値を抽出」
2行目の商品名も選択
↓
PADに繰り返しパターンを認識させる
必要に応じて
価格列
日付列
担当者列
ステータス列
なども追加
↓
データテーブルとして取得
見た目が表だからといって、必ず「HTML テーブル全体を抽出」が使えるわけではありません。HTMLテーブルとして認識されないサイトでは、同じ列に並んでいる複数の要素を指定し、繰り返しデータとして認識させる方法を使います。
実践3:「Excel の起動」で新しいExcelを作成する
Webページからデータを取得できたら、次は保存先となるExcelを起動します。
PADのアクション一覧から「Excel の起動」を追加します。
【アクション】
Excel の起動
【設定】
Excel の起動:
空のドキュメントを使用
Excel を表示する:
オン
【生成される変数】
%ExcelInstance%
今回はWebから取得した結果を毎回新しいファイルとして保存するため、空のExcelドキュメントを作成します。
このアクションを実行すると、操作対象となるExcelを表す%ExcelInstance%というインスタンス変数が生成されます。
Excelを画面に表示する必要はある?
開発・テスト中は、Excelを表示しておくことをおすすめします。
実際にA1セルからデータが書き込まれているかを目で確認できるため、フローの動きを理解しやすくなります。
安定して動くことを確認した後は、用途に応じて非表示で実行する構成を検討してもよいでしょう。
実践4:「Excel ワークシートに書き込む」で取得データをA1へ出力する
Excelを起動したら、Webから取得した%DataFromWebPage%をシートへ書き込みます。
使用するのは「Excel ワークシートに書き込む」アクションです。
【アクション】
Excel ワークシートに書き込む
【Excel インスタンス】
%ExcelInstance%
【書き込む値】
%DataFromWebPage%
【書き込みモード】
指定したセル上
【列】
A
【行】
1
ここで重要なのが、「書き込む値」に%DataFromWebPage%をそのまま指定する点です。
%DataFromWebPage%は複数行・複数列を持つデータテーブルなので、A1セルだけに巨大な文字列として入るわけではありません。
A1を左上として、データテーブルの行列構造に沿ってExcelへ展開されます。
たとえば取得したデータが次の内容だったとします。
| 商品コード | 商品名 | 数量 |
|---|---|---|
| A001 | 商品A | 10 |
| A002 | 商品B | 25 |
これをA1から書き込めば、そのままExcel上にも行列形式で配置できます。
これこそが、手作業で「Webの表を選択 → Ctrl+C → Excelを開く → Ctrl+V」としていた処理を自動化する基本形です。
実践5:「Excel を閉じる」でファイルを保存する
Excelへの書き込みが終わったら、ファイルを保存します。
PADでは「Excel を閉じる」アクションの保存設定を使うことで、書き込み済みのExcelを保存して終了できます。
【アクション】
Excel を閉じる
【Excel インスタンス】
%ExcelInstance%
【Excel を閉じる前】
ドキュメントを保存する
【保存先の例】
C:\PAD_Output\WebData.xlsx
これで、Webから取得したデータをExcelファイルとして保存できます。
実務では日時付きファイル名にすると便利
毎日同じ名前で保存すると、前日のファイルを上書きしてしまう可能性があります。
そのため実務では、現在日時を取得して、次のようなファイル名にする運用がおすすめです。
WebData_20260906_083000.xlsx
売上一覧_20260906.xlsx
検索結果_20260906_083000.xlsx
たとえばフローの前半で現在日時を取得し、日時を文字列として整形してファイル名へ組み込めば、毎回別ファイルとして保存できます。
【処理イメージ】
現在の日時を取得
↓
%CurrentDateTime%
日時をテキストに変換
↓
yyyyMMdd_HHmmss
↓
%FileDate%
保存パスを作成
↓
C:\PAD_Output\WebData_%FileDate%.xlsx
これなら、毎日の取得結果を履歴として残せます。
「2026/09/06 08:30:00」のような文字列をそのままファイル名へ使うと、「/」や「:」がWindowsのファイル名として使用できません。yyyyMMdd_HHmmssのように、ファイル名として安全な形式へ変換してから使用しましょう。
実践6:「Web ブラウザーを閉じる」でEdgeを終了する
Excelの保存まで完了したら、最後にブラウザーを閉じます。
「Web ブラウザーを閉じる」アクションを追加し、最初に作成した%Browser%を指定します。
【アクション】
Web ブラウザーを閉じる
【Webブラウザーインスタンス】
%Browser%
これで、ブラウザーの起動からExcel保存までの基本フローは完成です。
完成フローをもう一度確認
最終的な処理順序を整理すると、次のようになります。
▼ 新しい Microsoft Edge を起動する
初期URL:対象Webページ
出力:%Browser%
↓
▼ Web ページからデータを抽出する
ブラウザー:%Browser%
HTMLテーブル全体を抽出
出力:%DataFromWebPage%
↓
▼ Excel の起動
空のドキュメントを使用
出力:%ExcelInstance%
↓
▼ Excel ワークシートに書き込む
Excel:%ExcelInstance%
値:%DataFromWebPage%
列:A
行:1
↓
▼ Excel を閉じる
Excel:%ExcelInstance%
ドキュメントを保存する
保存先:任意のフォルダ
↓
▼ Web ブラウザーを閉じる
ブラウザー:%Browser%
一度この基本形を作ってしまえば、検索条件の入力やログイン処理などを前段に追加することで、かなり多くのWeb業務へ応用できます。
応用1:「次へ」がある複数ページのデータも自動取得する
実務では、検索結果が1ページだけに収まるとは限りません。
たとえば100件の検索結果に対して1ページ20件ずつ表示され、画面下部に「次へ」ボタンがあるケースです。
手作業なら、次のような操作になります。
- 1ページ目をコピーする
- 「次へ」を押す
- 2ページ目をコピーする
- 「次へ」を押す
- 最終ページまで繰り返す
これを毎日行うのは非常に面倒ですが、PADのWebデータ抽出ではページャーを指定することで、複数ページを連続して取得できる場合があります。
「次へ」ボタンをページャーとして指定する
Webデータ抽出の設定中に、検索結果一覧だけでなく「次へ」ボタンも指定します。
【Webデータ抽出】
一覧表を抽出対象として設定
↓
Web画面上の「次へ」ボタンを選択
↓
ページャーとして設定
↓
複数ページからデータを抽出
ページャーを正しく指定できれば、PADが次ページへ移動しながら同じ構造のデータを順番に取得できます。
これにより、「次へを押す → コピーする」を自前のループで何十回も組む必要を減らせるのが大きなメリットです。
各ページの表構造が同じで、「次へ」ボタンによってページが順番に切り替わるサイトに向いています。無限スクロール型サイトや、JavaScriptで特殊な読み込みを行うWebアプリでは、別の操作方法が必要になることがあります。
応用2:「UI 要素を待機する」でWebページの表示待ちを安定させる
Web自動化で非常によく発生するのが、「人間が見ると画面は表示されているのに、PADが先に次の処理へ進んでエラーになる」問題です。
たとえば検索ボタンをクリックした直後に一覧表を取得しようとしても、サーバー側の処理に2秒かかれば、その時点ではまだ表が表示されていない可能性があります。
そこで活用したいのが「UI 要素を待機する」です。
検索ボタンをクリック
↓
UI 要素を待機する
↓
「検索結果一覧」が表示されるまで待機
↓
Web ページからデータを抽出する
単純に「5秒待機」のような固定時間を入れる方法もありますが、Webサイトの応答速度は毎回同じとは限りません。
通常は、次の処理に必要なUI要素が実際に表示されたことを確認してから進むほうが安定したフローを作りやすくなります。
固定時間待機との違い
| 方法 | メリット | デメリット |
|---|---|---|
| 固定時間だけ待機 | 設定が簡単 | 遅い日は不足し、速い日は無駄な待ち時間になる |
| UI要素の出現を待つ | 実際の画面状態に応じて次へ進める | 待機対象となるUI要素の登録が必要 |
業務用のフローを安定稼働させたい場合、「何秒待つか」ではなく「何が表示されたら進めるか」という考え方が重要です。
PADとVBAによるWeb自動化は何が違う?
Excelを日常的に使っている方であれば、「Webからデータを取得するならVBAでもできるのでは?」と思うかもしれません。
確かに、従来はVBAからInternet Explorerを操作したり、Seleniumを利用してChromeなどを操作したりする方法が広く使われてきました。
しかし、WebブラウザーをVBAから自動操作する場合、環境によってはライブラリやWebDriverなどの準備が必要になり、HTMLやDOM、セレクターについての知識も求められます。
一方、PADでは画面上のWeb要素を実際に選択しながらフローを構築できるため、VBAコードを書かずにWeb操作を作りやすい点が大きなメリットです。
| 比較項目 | PAD | VBA+Web操作 |
|---|---|---|
| プログラミング | 基本的にノーコード/ローコード | VBAコードの記述が必要 |
| Web要素の指定 | 画面上から選択しやすい | HTML・DOM・セレクター等の理解が必要になる場合がある |
| ブラウザー操作 | 専用Web自動化アクションを利用 | 利用方式によって追加環境の準備が必要 |
| Excel操作 | 専用アクションで操作 | VBAが非常に得意 |
| 複雑なデータ加工 | 可能だがフローが長くなる場合がある | コードで柔軟に処理しやすい |
つまり、どちらか一方だけを選ぶ必要はありません。
Webブラウザーの操作はPAD、取得後の複雑なExcel加工はVBAというように、得意分野を組み合わせる方法も非常に実用的です。
Internet Explorerオブジェクト前提の新規開発は避ける
古いVBAのWeb自動化記事では、InternetExplorer.Applicationなどを利用したコードを見かけることがあります。
しかし、現在の業務自動化を新しく設計するのであれば、Internet Explorerを前提とした仕組みに依存するのではなく、Microsoft Edgeなど現在利用しているブラウザーとPADのWeb自動化機能を中心に構成するほうが現実的です。
「Web画面を操作してデータを取る部分はPAD」「取得したExcelを高速に集計・加工する部分はVBA」と役割分担すると、実務では扱いやすい自動化を作れます。
実務の注意点1:Webサイトのデザイン変更でセレクターエラーになる
Web自動化を運用するうえで、避けて通れないのがWebサイト側の変更です。
PADは、登録したWeb UI要素を識別するためにWebページ内部の情報を利用しています。
そのため、サイト運営側が画面をリニューアルしたり、HTML構造を大きく変更したりすると、以前登録した要素を見つけられなくなることがあります。
たとえば昨日まで正常だったフローで、突然次のような状態になることがあります。
- 検索ボタンを認識できない
- 入力欄が見つからない
- 表データの抽出に失敗する
- 「次へ」ボタンをクリックできない
- UI要素の待機がタイムアウトする
この場合、「PADそのものが壊れた」と考えるのではなく、まず対象Webページの構造が変わっていないかを確認しましょう。
セレクターエラーが発生したときの基本対応
- 対象Webページを手動で開き、画面構成が変わっていないか確認する
- PADで登録済みのUI要素を確認する
- 必要に応じて新しいUI要素を取得し直す
- Webデータ抽出の対象範囲も再設定する
- 一部分だけ実行して正常動作を確認する
Webサイトは自分たちが管理していない限り、いつ変更されてもおかしくありません。
そのため、Webスクレイピング系フローは一度作ったら永久にメンテナンス不要というものではない、と考えておくことが大切です。
実務の注意点2:ログインが必要なサイトの扱い
社内システムや会員サイトでは、最初にIDとパスワードを入力してログインするケースが多いでしょう。
この場合もPADで自動化できます。
新しい Microsoft Edge を起動する
↓
ログインページを開く
↓
ユーザーID入力欄へ入力
↓
パスワード入力欄へ入力
↓
ログインボタンを押す
↓
ログイン後の画面が表示されるまで待機
↓
検索条件を入力
↓
検索
↓
結果一覧が表示されるまで待機
↓
Web ページからデータを抽出する
ただし、パスワードをフロー内へ平文で直接書く運用は避けることをおすすめします。
特に会社の業務システムでは、認証情報の保管方法について社内ルールが定められていることがあります。
ID・パスワードをフローへ直接埋め込む前に、社内のセキュリティポリシーを確認してください。また、多要素認証やワンタイムパスワードが導入されているサイトでは、完全無人化が難しい場合もあります。
実務の注意点3:ログインセッションは毎回同じとは限らない
「昨日はログイン済みだったから、そのまま検索画面が開いた」という状態でも、翌日にはセッションの有効期限が切れてログインページへ戻されることがあります。
そのため、業務用フローでは常に同じ画面が表示される前提で作り込まないことが重要です。
たとえば、ログイン後に必ず存在するメニューや検索欄を待機対象にすることで、「ログインできているか」をある程度確認してから次へ進めます。
また、Webサービスによっては自動操作そのものを利用規約で制限している場合があります。社外Webサービスのデータを取得する場合は、利用規約やAPIの提供状況も確認したうえで利用してください。
よくあるエラーと対策
| 症状 | 考えられる原因 | 対策 |
|---|---|---|
| Web要素を取得できない | ブラウザー連携や拡張機能の問題 | EdgeとPower Automateの連携状態を確認する |
| HTMLテーブル全体を抽出できない | HTML上ではtable要素ではない | 複数の同種要素を選択して繰り返し構造を認識させる |
| 検索直後の抽出に失敗する | 一覧表が表示される前に処理している | UI要素の待機を追加する |
| 突然ボタンを認識しなくなった | WebページのDOM構造変更 | UI要素を取得し直す |
| Excelへ何も出力されない | %DataFromWebPage%が空 | Excel処理ではなくWebデータ抽出部分から確認する |
| ファイル保存でエラーになる | フォルダ不存在・禁止文字・同名ファイルなど | 保存先フォルダとファイル名を確認する |
まずは「人間の操作」をそのままPADへ置き換えるのがコツ
PADを初めて使うと、「どういうアクションを使えばいいのか分からない」と悩みがちです。
そのときは、最初から難しく考えず、普段自分が手作業で何をしているかを順番に書き出してみましょう。
今回の作業であれば、次のようになります。
【人間が行っている作業】
Edgeを開く
↓
Webサイトを開く
↓
必要ならログインする
↓
検索する
↓
結果一覧が出るまで待つ
↓
表をコピーする
↓
Excelを開く
↓
A1へ貼り付ける
↓
名前を付けて保存する
↓
Excelを閉じる
↓
Edgeを閉じる
この一つひとつをPADのアクションへ置き換えていくだけです。
RPAでは、いきなり高度な処理を作ろうとするよりも、人間の操作を小さな単位に分解することが安定したフロー作成への近道です。
PADでWeb取得後、VBAでさらに加工する方法も強力
PADでWebデータをExcelへ保存できるようになると、次にやりたくなるのが取得したExcelファイルの集計・整形です。
たとえば毎日保存されたファイルを月末にまとめたい場合、PADだけですべて構築することもできますが、Excel内の大量データ処理ではVBAが便利な場面もあります。
複数のExcelファイルをまとめて1つにしたい場合は、以下の記事も参考になります。
たとえば、
- PADで毎日Webからデータを取得する
- 日付別のExcelファイルとして保存する
- 月末にVBAで全ファイルを一括結合する
という構成にすると、Web操作とExcelデータ処理の得意分野をうまく分けられます。
ファイル整理まで自動化するとさらに便利
Webデータ取得が自動化できても、毎日Excelファイルが増えていくと、今度はファイル整理が面倒になります。
「年月別フォルダへ移動する」「規則に沿ってファイル名を変更する」といった作業もPower Automate for desktopで自動化できます。
Webデータ取得フローと組み合わせれば、取得 → Excel保存 → ファイル名変更 → フォルダ仕分けまで、人が触らない一連の処理へ発展させられます。
クラウド側の処理も組み合わせれば通知まで自動化できる
Power Automateには、今回使用したデスクトップ版だけでなく、クラウド上で動くPower Automateもあります。
たとえば、PADで取得したExcelをOneDriveやSharePoint上へ保存し、そのファイルの更新をきっかけに担当者へ通知する、といった構成も考えられます。
Power Automateクラウド版でExcel更新を検知して通知する基本フローはこちら
役割を整理すると、次のような使い分けができます。
| ツール | 得意な処理 | 活用例 |
|---|---|---|
| Power Automate for desktop | PC・ブラウザーの操作 | Web検索、データ抽出、Excel保存 |
| Power Automateクラウド | クラウドサービス間の連携 | ファイル更新検知、メール・Teams通知 |
| Excel VBA | Excel内部の複雑な加工 | 集計、整形、複数ファイル結合 |
まとめ
今回は、Power Automate for desktopでWebページの表データを自動抽出し、Excelへ保存する基本手順を解説しました。
基本となる流れは非常にシンプルです。
- 「新しい Microsoft Edge を起動する」で対象ページを開く
- 「Web ページからデータを抽出する」で表をデータテーブルとして取得する
- 「Excel の起動」で新しいExcelを作る
- 「Excel ワークシートに書き込む」で%DataFromWebPage%をA1から書き込む
- 「Excel を閉じる」でファイルを保存する
- 「Web ブラウザーを閉じる」でEdgeを終了する
さらに、「次へ」ボタンをページャーとして設定すれば複数ページにまたがる一覧取得へ発展させられます。また、検索結果などのUI要素が表示されるまで待機してから次へ進むようにすると、実務でも安定しやすいフローになります。
毎日繰り返している「Webを開く → 検索する → 表をコピーする → Excelへ貼る → 保存する」という作業は、PADによる自動化と非常に相性のよい業務です。
まずは小さな一覧表でWebデータ抽出を試し、正常に取得できたらログイン処理、検索条件入力、ページネーション、日時付き保存などを一つずつ追加していくのがおすすめです。
関連記事
- PADでファイルを一括リネーム・自動仕分けする方法:取得したExcelファイルの整理まで自動化したい方におすすめです。
- Power Automateクラウド版でExcel更新を検知・通知する方法:Excel更新後のメールや通知まで自動化したい方におすすめです。
- VBAで複数ファイルを自動結合する高速マクロ:PADで日々取得したExcelをまとめて集計したい場合に活用できます。
