概要と動機
・SharePointにユーザー向けのコンテンツを移行したい
・Webページ上のコンテンツのリンクに共有リンクを載せたい(詳細は省く)
・ExcelでSharePointのリンク一覧をエクスポートしている(共有リンクではない)
・リンク一覧はある為、そこから共有リンクを一斉に払い出せるか調べる
共有リンクってSharePointで複数出せないんですか?
要はSharePoint上の各それぞれの共有リンクを自動で取れないか考えた。
PADを初めて触ったので備忘録替わりに書いておこうと思い残しておく。
PAD全体
ざっと処理について記入
①Excelを開く、URLの一覧を読み取る。
②ブラウザを開く。M365にサインインする必要があるが今回は別ウインドウで365にサインインしておく。
③URLを開いてブラウザ自動操作→SharePointの共有URLを取得しクリップボードにコピー
④Excelの一覧表の対応する部分に取得したURLを書き込む。→ブラウザのタブを閉じる
⑤一覧表の次のURLを読み取り、③~⑤をループする
パカパカとブラウザのタブを開いて、操作、閉じる、Excelに記入を繰り返していく、
上から順に説明を記入していく。
Excel起動と読み取り
仮用に作成したExcel中身はこんな感じ、シート名は"WEBサイト"としておく。
※URLは適宜読み替えてください。
・Excelの起動
起動するExcelを選択する、"ExcelInstance"という変数が生成される。
各パラメータは読んだ通りで良い。
・Excelワークシートから最初の行や列を取得
"アクション"のExcelから選択する。
このアクションはExcelファイルのアクティブなシートの使用範囲から
"最初の空白列"、"最初の空白行"がどこにあるか?何列目で何行目かを特定してくれる。
生成される変数で"FirstFreeColumn"と"FirstFreeRow"が入る。
先ほどのExcelの中身は、B列の28行まで使用しており、
FirstFreeColumn = 3 ("最初の空白列")
FirstFreeRow = 29 ("最初の空白行")
となる。
Excelのインスタンスは自動で入っている。
今回は"取得:"を"セル範囲の値"に変更する。
そうすると、設定項目に先頭列、先頭行、最終列最終行を設定できる。
表の先頭はA1セルなので、先頭列、行ともに1を設定。
最終行と最終列は本番では増えるため、先ほど取得した
FirstFreeColumnとFirstFreeRowを使って設定する。
FirstFreeColumnとFirstFreeRowをそのまま指定すると、
FirstFreeColumn = 3
FirstFreeRow = 29
なので、A,B,C列と29行目まで含んでしまう。
これでは困る為、
FirstFreeColumn = 3
FirstFreeRow = 29
↑の各変数をパラメーター設定枠内で操作する。
最終列と最終行を
%FirstFreeColumn – 1%
%FirstFreeRow – 1%
に変更する。
これでそれぞれの変数がマイナス1され、2と28になる。
詳細を展開し、"範囲の最初の行に列名が含まれています"を有効にする。
※これで列を番号ではなく"列名"で取得できる、今回はいらんかも。
ExcelDataという変数にセルの範囲の値が保存される。
次回
ここまでできると7割ぐらい完成か、
Excelの読み取りの処理でどうやんの?という
疑問が初見であったので覚えておきたい。
次はループ処理を記入する、一発で終わると思いきや前後半に分ける事に。
次回はブラウザ操作からループ処理まで記入し完了とする。
PADでExcel(URL一覧)読み取り→ブラウザ操作してデータ書き出し その②
見て頂いてありがとうございます。
ご指摘等ありましたら、是非お聞かせ頂けると幸いです。