説明
前回、PADでExcel(URL一覧)読み取り→ブラウザ操作してデータ書き出し その①
主にExcelの読み取りに関して記入した、
今回はブラウザ操作→Excelの書き込み処理ループの内容となる。
ブラウザの起動からスタート
新しいMicrosoft Edgeを起動
ブラウザ起動のアクションを選択する。
筆者は今回edgeを選択。
後で新しいタブを開いていくがO365にサインイン出来ているか確認の為初期URLを入力している。
ウインドウの状態は"最大化"を選択、ブラウザ操作を行う際ウインドウの状態によってはUIの位置が変わってしまう。
変数の設定
ここでアクションを追加し、変数を設定する。
宛先:は初期値となる。
row=行 今回は一列目の先頭行はタイトルとなり、
データは二行目から書き込む事になる。
※↓ループで記入するが、Cの2から書き込んで欲しいため。
For each
アクションから For eachを選択、パラメータにはExcelDataを入れる。
・ExxelDataの中身と処理について
反復処理を行う値にExcelDataを入力した、
実行中の変数=#行の値となるので、1234それぞれの行にURLがある。(黒塗りしているがURLがある)
CurrentItem in ExcelDateは
↑の表の#0から順番に1行ずつ取り出しCurrentItemへ格納している。
"フロー変数"から
変数の値でCurrentItemを見ると、CurrentItem(Daterow)
の値が変わっていくのを確認できる。
新しいタブを作成
Webブラウザーインスタンスに"Browser"が設定されている
その下から解説。
移動先のURLにCurrentItemを選択する。
↑のループで取り出したCurrentItemが使用される。
CurrentItemは"行"のデータなので、作成したExcelのURLの一覧表が↓の場合、
URLと更新日時と列1(空白)
https//hoge.com 2022/10/5 0:00 空白
といったデータとなっている。
なので、URLだけ抜き出すために。
"%CurrentItem['URL']%"と記入する、これでURLだけ開いてくれる。
Webページのリンクをクリック
ブラウザー自動化のアクションからWebページのリンクをクリックを選択する
インスタンスは%NewBrowser%でクリックの種類は左クリックを選択する。
今回はSheraPointのフォルダ画面から、
"共有"ボタン→開いた先のウインドウ→共有URLの"コピー"ボタン→クリップボードへコピーするボタンとなるが、
MicrosoftのUIは変わる事がある為、作成方法を記入するだけに留めておく。
まず追加したアクションの"Webページのリンクをクリック"から、"UI要素"の、
"UI要素を追加"を選択する。
"UI要素ピッカー"が表示されるので、クリックさせたい箇所を選択して
Ctrlキー+左クリックでクリックする。
UI要素がピッカー上に保存される、不要な要素を削除して登録する。
詳細を展開し、"ページが読み込まれるまで待機します"を有効にしておく。
これで、SharePoint上からURLがコピー出来て入ればOK
ここは何かしらのデータを取得する部分に読み変えれば良いと考える。
クリップボードからテキスト取得→Excelワークシートに書き込む
アクションのクリップボードから"クリップボードテキストを取得"を選択する
次は、"Excelワークシートに書き込む"
書き込む値がClipboardTextとなる
"書き込みモード"指定したセル上となり、
列が3
Excelのデータでは、URL:更新日時:列1となっており3つ目の列から入力となる。
行を変数の%Row%とする。
最初はRow=2なので、2行目から入力となる。
これを変数とし、次のアクションで"Row"を大きくする。
変数を大きくする
ブラウザを閉じる
NewBrowserを閉じるようにする。
"%CurrentItem['URL']%"で開いたブラウザのインスタンス
新しいタブを作成で生成される変数=NewBrowserとなる。
これで以上。
まとめ
素人感が満載
振り返りを兼ねて書いてみた。
今回はピンポイントにこんな処理が欲しいなと思い作成。
SharePointで色々したい場合、別の方法があるとも思う、
今回は手っ取り早い&他にも応用が利くかと考えた。
見て頂いた方ありがとうございます。
お目汚し失礼しました。
・参考にしたサイト。
Power Automate DesktopでExcelの表データを扱う
誰でも】スクレイピングでWebサイトの表からデータを抽出する方法!
Power Automate for desktopでUI要素の追加・編集方法
この場を借りてお礼申し上げます。