PADでExcel(URL一覧)読み取り→ブラウザ操作してデータ書き出し その②

# 説明
前回、[PADでExcel(URL一覧)読み取り→ブラウザ操作してデータ書き出し その①](https://qiita.com/raveny/items/5599e58aeecd16a0b452)

主にExcelの読み取りに関して記入した、
今回はブラウザ操作→Excelの書き込み処理ループの内容となる。

![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/b36c64bd-231c-efe2-b575-6a6f0606b7fd.png)

ブラウザの起動からスタート

# 新しいMicrosoft Edgeを起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/8f30e439-d6f6-2297-caf6-6d97d7048265.png)
ブラウザ起動のアクションを選択する。
筆者は今回edgeを選択。
後で新しいタブを開いていくがO365にサインイン出来ているか確認の為初期URLを入力している。
ウインドウの状態は"最大化"を選択、ブラウザ操作を行う際ウインドウの状態によってはUIの位置が変わってしまう。

# 変数の設定
ここでアクションを追加し、変数を設定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/96ab5edd-0c0a-0444-7b23-6573639d2079.png)
宛先:は初期値となる。
row=行　今回は一列目の先頭行はタイトルとなり、
データは二行目から書き込む事になる。
※↓ループで記入するが、Cの2から書き込んで欲しいため。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/f46f740b-9e5d-05f7-2e48-12c6b1e07e43.png)

# For each
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/e6126240-3572-c146-9a28-ddff829b33ac.png)

アクションから For eachを選択、パラメータにはExcelDataを入れる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/356872b0-242f-f20e-f8cc-3f70e14ed3b1.png)

・ExxelDataの中身と処理について
反復処理を行う値にExcelDataを入力した、
実行中の変数=#行の値となるので、1234それぞれの行にURLがある。(黒塗りしているがURLがある)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/66227c46-23a2-ecc8-1c66-8e61a38c9de8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/e0467303-1d59-4495-bc9c-88f521e602e2.png)
CurrentItem in ExcelDateは
↑の表の#0から順番に1行ずつ取り出しCurrentItemへ格納している。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/16290370-6542-3d3b-63a0-0df3eff071e5.png)

"フロー変数"から
変数の値でCurrentItemを見ると、CurrentItem(Daterow)
の値が変わっていくのを確認できる。

# 新しいタブを作成
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/9328f833-1ee4-f929-b900-a8b47ac27fde.png)
Webブラウザーインスタンスに"Browser"が設定されている
その下から解説。

移動先のURLにCurrentItemを選択する。
↑のループで取り出したCurrentItemが使用される。
CurrentItemは"行"のデータなので、作成したExcelのURLの一覧表が↓の場合、
URLと更新日時と列1(空白)
https//hoge.com 2022/10/5 0:00 空白
といったデータとなっている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/71f63382-1ad5-aadc-62ab-b9f21cc4720f.png)
なので、URLだけ抜き出すために。
"%CurrentItem['URL']%"と記入する、これでURLだけ開いてくれる。

# Webページのリンクをクリック
ブラウザー自動化のアクションからWebページのリンクをクリックを選択する
インスタンスは%NewBrowser%でクリックの種類は左クリックを選択する。

今回はSheraPointのフォルダ画面から、
"共有"ボタン→開いた先のウインドウ→共有URLの"コピー"ボタン→クリップボードへコピーするボタンとなるが、
MicrosoftのUIは変わる事がある為、作成方法を記入するだけに留めておく。

まず追加したアクションの"Webページのリンクをクリック"から、"UI要素"の、
"UI要素を追加"を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/e4686165-9b46-5d28-901c-32eb8ba032ea.png)

"UI要素ピッカー"が表示されるので、クリックさせたい箇所を選択して
Ctrlキー+左クリックでクリックする。
UI要素がピッカー上に保存される、不要な要素を削除して登録する。

詳細を展開し、"ページが読み込まれるまで待機します"を有効にしておく。

これで、SharePoint上からURLがコピー出来て入ればOK
ここは何かしらのデータを取得する部分に読み変えれば良いと考える。

# クリップボードからテキスト取得→Excelワークシートに書き込む
アクションのクリップボードから"クリップボードテキストを取得"を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/1543ce7e-120a-602b-541d-3f24e2f29013.png)

次は、"Excelワークシートに書き込む"
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/3436d79d-4e07-7383-7d36-f8a200399648.png)
書き込む値がClipboardTextとなる
"書き込みモード"指定したセル上となり、
列が3
Excelのデータでは、URL:更新日時:列1となっており3つ目の列から入力となる。

行を変数の%Row%とする。
最初はRow=2なので、2行目から入力となる。
これを変数とし、次のアクションで"Row"を大きくする。

# 変数を大きくする
こちらは内容の通り
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/48df1160-527b-f391-7c05-291d945b9b3d.png)

# ブラウザを閉じる
NewBrowserを閉じるようにする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265454/a93e3103-fe64-8759-53ec-a174673f8a3b.png)
"%CurrentItem['URL']%"で開いたブラウザのインスタンス
新しいタブを作成で生成される変数=NewBrowserとなる。


これで以上。


# まとめ
素人感が満載
振り返りを兼ねて書いてみた。

今回はピンポイントにこんな処理が欲しいなと思い作成。
SharePointで色々したい場合、別の方法があるとも思う、
今回は手っ取り早い＆他にも応用が利くかと考えた。

見て頂いた方ありがとうございます。
お目汚し失礼しました。

・参考にしたサイト。
[Power Automate DesktopでExcelの表データを扱う](https://expy-style.net/excel/powerautomatedesktop-excel-foreach/)
[誰でも】スクレイピングでWebサイトの表からデータを抽出する方法！](https://www.teijitaisya.com/pad-get-html-table/)
[Power Automate for desktopでUI要素の追加・編集方法](https://www.teijitaisya.com/pad-ui/)
この場を借りてお礼申し上げます。