Edge と SharePoint Online に帰ってきたエクスプローラ表示機能で Power Automate for desktop を便利に使う

Office 365 Advent Calendar 2021 8日目の記事です。
https://adventar.org/calendars/6679

Power Automate for desktop にはフォルダやファイルを開く、コピー、移動等、いろいろなファイル操作のアクションがありますが、これらは基本的にローカルの環境にあるものが対象になると思います。
これらのアクションで SharePoint Online に保存してあるものを操作したいという要望がよくあるのですが、そのままでは実行できません。

一番の方法としては以下の記事にある通り、OneDrive 同期クライアントを利用されるとよいと思います。

maekawawawa さんの記事

https://qiita.com/maekawawawa/items/fd1958f196f72b582e42

どうしても同期クライアントを使えない等の場合、最近追加された、Edge で SharePoint Online の エクスプローラ表示機能(有効化が必要)を利用すると、SharePoint Online にあるものをローカルのものかのように扱うことができるので、今回はそれをやってみたいと思います。

# 手順

作業手順としては以下の通りです。

- SharePoint Online のエクスプローラ表示機能を有効化する
- Power Automate for desktop のフローを作成し実行する

# SharePoint Online のエクスプローラ表示機能を有効化する

有効化手順については、以下のブログが非常に詳しかったので、そちらをご確認ください。
組織だと、管理者権限相当の権限がいるかもです。ご注意を。

##参考

みさわさんのブログ
Microsoft 365 Edge で SharePoint のエクスプローラービューが開けるようになるようです
https://mitomoha.hatenablog.com/entry/2021/09/22/011408

エクスプローラーでSharePointファイルを表示するMicrosoft Edge
https://docs.microsoft.com/ja-jp/sharepoint/sharepoint-view-in-edge

有効化を実行して、下記のように`エクスプローラーで表示`が選択できるようになり、それをクリックすると、実際にエクスプローラで表示されれば完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/9f4ffe7b-8d5b-a02b-f0f2-a5cd2e3ad9b1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/7db1dc2a-3e58-adc2-cf0b-65ab4cc98d52.png)


# Power Automate for desktop のフローを作成し実行する

今回はローカルのフォルダAを SharePoint Online のライブラリBに移動してみます。

ローカルのフォルダA
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/36c4ffc0-086b-2ca2-e3ad-f290b71fe9bb.png)

SharePoint Online のライブラリB(test.txtだけ)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/576bc293-1195-bd1e-9a25-8b98ae3b8ef7.png)

## 新しいフローの作成
Power Automate for desktop で、新しいフローを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/ec27aed4-944c-a675-b0c1-46aa0951f9ef.png)

## `ファイルの移動`などのアクションの設置(事前準備)

さっそく`フォルダをコピー`アクションで、フォルダごとコピーしたいところですが、その前に、`ファイルの移動`などのファイル選択ができるアクションを配置してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/0f79d5e3-17dc-d726-2376-6a76482e1322.png)

そこで、ファイル選択をクリックし、以下のような画面を表示します.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/059b3aa4-5435-c2a2-a4e8-8438b8999194.png)

ここに、ライブラリB の URL を入力して、test.txt を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/b11367a8-4f8e-0e67-a587-2bbf6d3a0c14.png)

そうすると、以下のような値が表示されます。
この `\\{ホスト名}\@SSL\DavWWWRoot\{ライブラリの名前}`をコピーしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/23cfcdb7-8ae3-aa5f-04ea-48ab71937698.png)

## `フォルダのコピー`アクションの設置

次に、`フォルダのコピー`アクションを設置し、以下のような設定をします。

| 項目 | 値 | 
|:-----------|:------------:|
| コピーするフォルダー | フォルダAのパス |
| 宛先フォルダー | コピーした`\\{ホスト名}\@SSL\DavWWWRoot\{ライブラリの名前}`|
| フォルダが存在する場合 | 何もしない |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/2228195c-5f8e-fe62-0298-48e2ecaf051e.png)

## 実行してみる

準備ができたので、実行してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/8469239c-ce6d-a3e3-722b-d51588e33545.png)

結果、フォルダができて
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/27095d79-ab89-d392-c055-44ec5c4fdfc7.png)

中身をしっかりコピーできています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/312282/bda334ee-3aae-ee0a-be56-86b1d0d2529d.png)

今回はフォルダでやってみましたが、もちろんファイルも可能です。

# 注意点
上記方法で、ローカルのように扱うことができますが、`エクスプローラーで表示`をクリックしてからしばらく経過すると、急に使えなくなることがあります。
その場合は、`エクスプローラーで表示`を再度クリックしてあげると、また使えるようになります。

# 感想
OneDrive 同期クライアントが使えれば、当然そちらのほうがいいと思いますので、そちらをご利用ください。
IE 使えばこんなことしなくてもいいですって？なんですか IE って、僕は知らないなあ。