Power Automate Desktopを使用すると、Excelのデータをループ処理し、各データに基づいてWeb検索を行い、その結果をExcelに書き込むことができます。本記事では、Excelの「国名」リストをGoogle検索し、その国の首都を取得し、対応するExcelのセルに書き込む方法をステップバイステップで解説します。
目次
処理の概要
今回のフローでは、以下の手順で自動化を行います。
- Excelファイルを開く
- 「国名」データを読み込み、データテーブルに変換
- データを1行ずつ処理(For Each)
- Web検索を実行し、検索結果をスクレイピング
- 取得したデータをExcelの「首都」列に書き込む
- Excelを保存して閉じる
使用するサンプルExcelファイル(data.xlsx)は、以下のような形式です。
| ID | Country | Capital |
|---|---|---|
| 1 | India | |
| 2 | Canada | |
| 3 | Denmark | |
| 4 | Indonesia |
この「Country」列のデータをGoogle検索し、「Capital」列に首都名を自動入力します。
【手順1】Power Automate DesktopでExcelデータを読み込む
1. Excelファイルを開く
まず、ExcelファイルをPower Automate Desktopで開きます。
- 「Launch Excel」アクションを追加
- Workbook Path に
data.xlsxのパスを指定 - 「Make instance visible」 のチェックを外す(Excelを表示せずに処理)
- 「Save workbook on close」 は No に設定
- Workbook Path に
- 「Read from Excel worksheet」アクションを追加
- 「Excel instance」 を先ほどの変数
ExcelInstanceに設定 - 「Retrieve」 は All available values from worksheet を選択
- 「First line of range contains column names」 にチェック(ヘッダー行を識別)
- 「Excel instance」 を先ほどの変数
【手順2】データをループ処理する
Excelから読み込んだデータを、1行ずつ処理するために「For Each」アクションを追加します。
- 「For Each」アクションを追加
- 「Value to iterate」 に
ExcelData(データテーブル)を設定 - 「Current item」 を
CurrentRowに設定(現在の行データを格納)
- 「Value to iterate」 に
- データを取得
CurrentRow["Country"]を使用し、国名データを取得
- 「Display message」でテスト
- 変数
CurrentRow["Country"]をメッセージとして表示し、正しく取得できているか確認
- 変数
【手順3】Google検索を実行する
次に、取得した国名をGoogleで検索し、その結果を取得します。
- 「Launch new Microsoft Edge」アクションを追加
- 初期URLを
https://www.google.com/に設定 - 変数
BrowserInstanceを作成
- 初期URLを
- Google検索フィールドに国名を入力
- 「Populate text field on web page」 アクションを追加
- UI要素をGoogle検索フィールドに設定
- 入力内容を
CurrentRow["Country"] & " Capital"に設定 - 「Unfocus text box after filling」 のチェックを外す
- Enterキーを送信
- 「Send keys」 アクションを追加
{ENTER}を送信
【手順4】検索結果をスクレイピング
Google検索結果の最初の答えを取得します。
- 「Extract data from web page」アクションを追加
- 取得対象を検索結果の最初のスニペットに設定(例:「New Delhi」)
- 変数名
CapitalDataTable(データテーブル)を作成
- 検索結果を取得
CapitalDataTable[0][0]を使用し、最初の結果を取得
【手順5】取得したデータをExcelに書き込む
取得した首都データを、対応するExcelのセルに書き込みます。
- 「Write to Excel worksheet」アクションを追加
- Excel instance:
ExcelInstance - Value to write:
CapitalDataTable[0][0] - Column:
"C"(首都の列) - Row:
RowNumber(現在の行番号)
- Excel instance:
- 行番号を更新
- 「Increase variable」 アクションで
RowNumberを+1する
- 「Increase variable」 アクションで
【手順6】Excelを保存して閉じる
最後に、Excelを保存して閉じます。
- 「Close Excel」アクションを追加
- 「Save document」 を
Yesに設定
- 「Save document」 を
- 「Close web browser」アクションを追加
- BrowserInstance を選択し、検索終了後にブラウザを閉じる
【完成したフローの流れ】
- Excelファイルを開く
- データテーブルに変換
- 1行ずつ処理(For Each)
- 国名を取得
- Google検索
- 検索結果を取得(スクレイピング)
- 取得した首都をExcelに書き込む
- Excelを保存して閉じる
- ブラウザを閉じる
よくある質問(FAQ)
Q1. 検索結果がうまく取得できない場合、どうすればいいですか?
A1. GoogleのUIは変更されることがあるため、スクレイピングのターゲット要素を最新の状態に更新してください。また、「Extract data from web page」アクションの選択対象を正しく設定できているか確認してください。
Q2. 処理速度を上げるにはどうすればいいですか?
A2. 以下の方法を試してください。
- Excelのデータを直接編集せず、一旦データテーブルに格納して最後にまとめて書き込む
- 不要な表示アクション(Display message など)を削除する
- ブラウザのナビゲーションを最適化する(例:検索ページを再読み込みせずに直接検索)
Q3. 検索ワードを変更するには?
A3. Populate text field on web page の入力値を変更してください。例えば "Country Capital" の代わりに "Country Population" に変更すれば、人口データを取得できます。
