Power Automate Desktop(通称PAD)は、Microsoft社が開発したローコードの無料RPAツールです。
PADを使えば、一からコードを書くことなく、簡単にデータ収集の自動化ができます。
今回はPAD初心者向けに、簡単なWebデータの収集ロボットの作成方法を解説します。
慣れれば5分ほどで作れます。
PADを使ってデータ収集をサクッと自動化しちゃいましょう!
Webデータ取得ロボットの概要
今回作成するのは、Webから収集したデータをExcelに転記するロボットです。
例えば以下のようなキーワードリストがあります。
俺の好きなモー娘の現役メンバーじゃねえか!
各メンバー名をYahoo知恵袋で一つずつ検索し、検索ヒット数を取得します。
↓
取得した検索ヒット数をExcelリストの3列目の各レコードに転記します。
これをキーワードの数だけ繰り返します。
ロボットの動作はこちらの動画で確認できます。
単調な繰り返し作業は、ロボットさんにお任せしましょう!
Webデータ取得ロボット作成の手順
Power Automate Desktopでフローを作成する前に、まずは既存の作業工程を洗い出します。
工程はざっくり7つあります。【作業工程表】
1個ずつ組み立てていきましょう!
工程① Excelを起動する
アクションの検索窓に「Excel」と入力し、「Excelの起動」を選択。Mainフロー画面にドラック&ドロップします。
設定ウィンドウが開くので、Excelの起動を「次のドキュメントを開く」に設定します。
Excelが保存されているドキュメントパスを指定し、保存ボタンを押します。
工程② ExcelデータをPADに取り込む
Excelのデータ範囲を指定し、PADに読み込みます。
サンプルのリストだと、A列2行目からA列15行目までです。
でも、モー娘。はメンバーの入れ替わり激しいからな。つねに14人とは限らないぞ!
データ数が変化することを考慮し、「Excelワークシートから最初の空の列や行を取得」というアクションを追加します。
このアクションを使用することで、Excelワークシートの最初の空の列が「FirstFreeCulumn」、最初の空の行が「FirstFreeRow」という変数に格納されます。
なので、行列がそれぞれ追加されても、最終列番号が「FirstFreeCulumn-1」、最終行番号は「FirstFreeRow-1」という計算式で表すことができます。
動的な数値の取得には、変数を利用しましょう!
最初の空の行列の取得を行ったあとに「Excelワークシートから読み取り」アクションを追加します。
編集ウィンドウが開くので、
必要事項を登録します。
- 「取得」欄は「セル範囲の値」と設定
- 「先頭列」欄は1列目を指定するので「1」と入力
- 「先頭行」欄は2行目のセルから始めるので「2」と入力
- 「最終列」欄は1列目なので「1」と入力
- 「最終行」欄は、変数「FirstFreeRow」の一つ上の行なので「%FirstFreeRow-1%」と入力 ※変数は%で囲います。
設定が終わったら保存を押します。
工程③ 検索ブラウザを立ち上げる
次に検索ブラウザを起動するアクションを追加します。
右側のアクション一覧から、「新しいChromeを起動する」を選択し、Mainフローへドラック&ドロップで移動します。
編集ウィンドウが開くので、初期URLを設定します。
今回は「Yahoo!知恵袋」を利用します。
工程④ キーワード検索
キーワード検索は、デスクトップレコーダーの記録を使って組み立てます。
ブラウザでYahoo!知恵袋を開いた状態で、デスクトップレコーダーアイコンをクリック。
デスクトップレコーダーが開くので、レコードをおして記録開始。
検索窓にキーワードを打ち、Enterを押します。
動作が、どんどんレコーダーウィンドウに記録されていってます。
ここまでで、デスクトップレコーダーの記録は終了です。
「終了」ボタンを押してレコーダーウィンドウを閉じると、フローができています。
記録されたフローを確認し、不要なアクションを右クリックで削除します。
※レコーディング記録を行うと、フローの一番上と一番下にコメントアクションが自動生成されます。こちらは不要なので毎回削除します。
ここまでのフローを実行し、動作確認してみましょう。
工程⑤ 検索ヒット数を取得する
検索ヒット数の取得は、Webレコーディング機能を使って組み立てます。
Webレコーダーをクリックし、
ブラウザを選択。
Webレコーダーウィンドウが開くので、レコードをクリック。
クロームの検索結果画面から検索ヒット数をクリック指定し、
右クリックで、「要素の値を抽出」→「テキスト」を選択し、クリックします。
Webレコーダーへの記録を確認し、Webレコーダーウィンドウの「終了」を押します。
工程⑥ 取得した検索ヒット数をExcelに転記する
取得した検索ヒット数をExcelに転記します。
「Excelワークシートに書き込み」アクションをMainフローにドラック&ドロップで追加します。
編集ウィンドウが開きます。
「書き込む値」欄は、変数「%intertext%」です。右の{✖}から指定することで、自動で%が設定されます。
「書き込みモード」欄は「指定したセル上」を選択します。
「列」欄はExcelシートのC列に入力したいので「3」と入力。
「行」欄はExcelシートの2行目から始まるので、ここではいったん「2」と入力します。(あとで変更します)
Excelの書き込み箇所
工程⑦ キーワードの数だけ処理を繰りかえす
最後はループ処理です。
ループ処理は「ForEach」アクションを使います。
アクションメニューから、「ループ」をクリックし「ForEach」アクションを選択したら、Mainフローの5列目にドラック&ドロップします。
編集ウィンドウが開くので、「反復処理を行う値」欄に変数「ExcelData」を設定します。変数「ExcelData」には、すべてのキーワードデータが格納されています。
※右側の(x)をクリックすると変数が選択できます。選択した変数は%で囲われます。
「For Each」と「End」の中に、繰り返しの工程が必要なアクションを入れます。
8-1.変数CurrentItemへの置き換え
変数CurrentItemは、全データが格納された変数「ExcelData」からデータを一つ取り出し、そのデータを格納する保管庫をイメージしていただければよいかと。
関係ないけど、この画像だけめちゃくちゃクオリティー低いな。
デスクトップレコーダー記録時に、アドレスバーで「譜久村聖」と手入力した部分を、変数「CurrentItem」に置き換えます。
編集ウィンドウを開き、「入力するテキスト」欄に記載されている「譜久村聖」を消し、{✖}ボタンから変数「CurrentItem」を選択します。
ここでさらに設定が必要です!CurrentItemのうしろには必ずカッコでくくった引数を入れます。
[0]は、データの列を指定する引数です。キーワードデータは1行目に記録されているので[0]になります。
初期値が0のため、1列目でも[1]ではなく[0]になるので注意です。
8-2.変数「NewVar」への置き換え
取得した検索ヒット数をExcelに書き込む際にも、変数が必要になります。
先の工程⑥の「Excelワークシートに書き込み」アクションの編集画面で行を「2」と指定しましたが…
このままだと、常に2行目への書き込みとなるため、繰り返すたびに数値が上書きされてしまいます。行は2,3,4と順番に変化させていきたいので、変数の出番です。
アクション「変数の設定」を「For Each」の前に入れます。
編集ウィンドウが開くので、宛先に初期値「2」を入力します。
新たな変数「NewVar」が生成されました。
同じように、Endの前にも変数を設定します。
編集ウィンドウが開くので、設定を「NewVar」、宛先に「%NewVar+1%」と入力します。
ループの最後に「NewVar+1」を入れることで、ループするたびに変数「NewVar」の値が1加算された値に置き換わります。
最後に、「Excelワークシートに書き込み」アクションを編集します。
編集ウィンドウを開き、「2」の値を「%NewVar%」に変更します。
最後に、アクション「Webページに移動します」を使いし、Webページを一つ前の状態に戻しておきます。
編集ウィンドウが開くので、移動欄を「戻る」に設定します。
組み立てはここまでです!完成したフローを実行してみましょう!
まとめ
以上、「】Power Automate DesktopでWebページ からデータを抽出」を解説しました。
PADは、他のプログラミング言語に比べると短時間でパパっとロボットが作れるのでおすすめです。
ローコードのPower Automate Desktopをぜひお試しあれ~。