Office 365 Advent Calendar 2021 8日目の記事です。
https://adventar.org/calendars/6679
Power Automate for desktop にはフォルダやファイルを開く、コピー、移動等、いろいろなファイル操作のアクションがありますが、これらは基本的にローカルの環境にあるものが対象になると思います。
これらのアクションで SharePoint Online に保存してあるものを操作したいという要望がよくあるのですが、そのままでは実行できません。
一番の方法としては以下の記事にある通り、OneDrive 同期クライアントを利用されるとよいと思います。
maekawawawa さんの記事
どうしても同期クライアントを使えない等の場合、最近追加された、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
有効化を実行して、下記のようにエクスプローラーで表示
が選択できるようになり、それをクリックすると、実際にエクスプローラで表示されれば完了です。
Power Automate for desktop のフローを作成し実行する
今回はローカルのフォルダAを SharePoint Online のライブラリBに移動してみます。
SharePoint Online のライブラリB(test.txtだけ)
新しいフローの作成
Power Automate for desktop で、新しいフローを作成します。
ファイルの移動
などのアクションの設置(事前準備)
さっそくフォルダをコピー
アクションで、フォルダごとコピーしたいところですが、その前に、ファイルの移動
などのファイル選択ができるアクションを配置してください。
そこで、ファイル選択をクリックし、以下のような画面を表示します.
ここに、ライブラリB の URL を入力して、test.txt を選択します。
そうすると、以下のような値が表示されます。
この \\{ホスト名}\@SSL\DavWWWRoot\{ライブラリの名前}
をコピーしてください。
フォルダのコピー
アクションの設置
次に、フォルダのコピー
アクションを設置し、以下のような設定をします。
項目 | 値 |
---|---|
コピーするフォルダー | フォルダAのパス |
宛先フォルダー | コピーした\\{ホスト名}\@SSL\DavWWWRoot\{ライブラリの名前}
|
フォルダが存在する場合 | 何もしない |
実行してみる
今回はフォルダでやってみましたが、もちろんファイルも可能です。
注意点
上記方法で、ローカルのように扱うことができますが、エクスプローラーで表示
をクリックしてからしばらく経過すると、急に使えなくなることがあります。
その場合は、エクスプローラーで表示
を再度クリックしてあげると、また使えるようになります。
感想
OneDrive 同期クライアントが使えれば、当然そちらのほうがいいと思いますので、そちらをご利用ください。
IE 使えばこんなことしなくてもいいですって?なんですか IE って、僕は知らないなあ。