SharePoint Online 上のファイルを Power Automate Desktop から使用する

#はじめに
Power Automate Desktop からクラウド サービス上のファイルを扱いたいというケースはよくあると思います。
特に Microsoft 365 を利用しているユーザーでは、SharePoint Online や OneDrive for Business のファイルを操作したり、アップロードしたいことがあるのではないでしょうか。

SharePoint Online は、OneDrive 同期クライアントを介して、ドキュメント ライブラリをクライアント PC 上のフォルダと同期(参照)することが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/c5e83875-ce8e-0395-34f2-8a3f03fd86ee.png)

この機能を使用することにより SharePoint Online 上のファイルを Power Automate Desktop から操作を行うことができます。

本記事では、Power Automate Desktop から、SharePoint Online のドキュメント ライブラリにアクセスして、保存されているファイルの操作やライブラリ上にファイルを作成可能とする方法をまとめました。


#事前準備
SharePoint Online と PC の同期には OneDrive 同期クライアントが必要です。
OneDrive 同期クライアントの設定については、下記公開情報に詳細な説明がありますので参照してください。

https://support.microsoft.com/ja-jp/office/-615391c4-2bd3-4aae-a42a-858262e42a49


簡単に設定のポイントだけ以下に抜粋します。

OneDrive 同期クライアントは、Windows 10 であれば基本的にインストールされています。
スタートメニューで、"OneDrive" を検索し、実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/81712f89-23ea-3dce-58c9-f0f2c161495f.png)

設定のウィザードで、SharePoint Online を利用可能な Microsoft 365 のアカウントを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/19725033-6479-f680-4921-fd68859daaf9.png)

設定が完了するとエクスプローラーに、「OneDrive - 会社名」のフォルダーが作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/ac01bac6-03b0-690d-d3f9-00b82ac7158d.png)


#SharePoint Online の設定 - "ショートカットの追加" と "同期"
ドキュメント ライブラリには、クライアント PC との同期を行う 2 つの機能があります。
1 つは、"OneDrive へのショートカットの追加"、もう 1 つは"同期"です。

ここでは、この 2 つの機能の違いには言及しませんが、それぞれの設定方法を説明します。
(個人的に好きなのは "ショートカットの追加" です。)

##ショートカットの追加
Power Automate Desktop から参照を行いたいサイトのドキュメント ライブラリにアクセスします。

[OneDrive へのショートカットの追加] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/65ecc8a8-797c-bff8-974d-84ae84a04ea9.png)

クライアント端末のOneDrive フォルダー内にショートカットが追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/2b259324-def3-1233-a1f1-c0473b695e61.png)

ショートカットをクリックするとドキュメント ライブラリにアクセスできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/2728a668-e388-b0c6-5866-33e0d2219dcf.png)

##同期
Power Automate Desktop から参照を行いたいサイトのドキュメント ライブラリにアクセスします。

[同期] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/d181daf8-f09b-d453-bf12-ee04aa83aa7f.png)


同期のメッセージが表示されるので、[開く] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/ed17fba6-a1da-4d87-7479-d7021e504df7.png)

クライアント端末のエクスプローラーにビルのアイコンの ”会社名” フォルダが作成されますので、こちらからドキュメント ライブラリにアクセスできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/cb08d84c-2b8b-3cd7-2c49-0ce5c0d293a9.png)


また、SharePoint 以外の、Teams のファイルタブのファイルもこの方法で参照が可能です。
ファイルタブにアクセスし、同期をクリックすると上述のようにエクスプローラー上にフォルダが作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/bea8068e-ab0d-cfcb-431e-7f07d9144ebd.png)
これは、Teams のチームのファイルは、チームに紐づく SharePoint Online のサイトに保存されているため、上記の設定で同様にフォルダの参照が可能となります。


###注意点
既に [同期] にて同期済みのライブラリにショートカットを追加すると、OneDrive フォルダーにショートカットは作成されません。逆も然りです。
(上記例では、キャプチャ取得のために一度ショートカットを削除したり、同期を解除したりしています。)


#Power Automate Desktop からの参照方法
OneDrive 同期クライアントの設定後は、普段クライアント端末に保存されているファイルと同様に SharePoint 上のファイルを扱うことができます。

同期フォルダのパスは、エクスプローラーのアドレスバーをクリックするとパスが確認できます。
このパスを Power Automate Desktop のファイルを扱うアクションで指定すればいいだけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/263a9e85-7c30-7af5-107e-3f54f716756d.png)


なお、同期の場合は、パスは一般的に以下の構成のパスになっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/8f62994b-0f05-3a33-d7ad-51f3bafee8fc.png)

###Power Automate Desktop からドキュメント ライブラリ上の Excel ファイルを使用する
Power Automate Desktop の [Excel を起動する] アクションで、SharePoint Online 上のファイルを開きます。
ドキュメント パスの指定で、同期フォルダを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/31fe88e5-5989-6458-0a2b-dd8bf1fdfb9e.png)

ファイル選択ダイアログから選択する場合は、エクスプローラーから同期フォルダを選択し、開きたい対象のファイルを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/112993bb-aa65-1b09-4611-476b1d98bc2b.png)

同期フォルダ内のファイルが "ドキュメント パス" に設定されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/765103db-3325-44dc-27ef-4a9197cbfc9e.png)

以上で、SharePoint Online 上のファイルを Power Automate Desktop から操作できます。
操作後、ファイルを保存すると SharePoint Online 上のファイルに更新が反映されます。


###PowerAutomate Desktop から ドキュメント ライブラリにファイルをアップロードする
Power Automate Desktop の処理の中で作成したファイルを同期クライアントを介して SharePoint Online のドキュメント ライブラリにアップロードします。

ここでは、[PDF から画像を抽出します] アクションを使って、取得できた画像ファイルを SharePoint Online のドキュメント ライブラリに保存します。

画像を取得する PDF ファイルを選択します。これは、ローカルのファイルを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/5d33b173-cbab-04ea-107f-a5def5ddab9a.png)

[画像の保存先] に同期フォルダ上のパスを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/315b0244-82f2-69c4-c061-b0cf97496356.png)


このアクションを実行し、SharePoint Online のドキュメント ライブラリの該当のフォルダを見ると PDF ファイルから抽出された画像ファイルが作成されていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/ab9a6f5c-d7ab-7198-2432-12b4199eeb64.png)


#まとめ
OneDrive 同期クライアントを介することで、Power Automate Desktop から容易に SharePoint Online 上のファイルを扱ったり、新たなファイルを保存することが可能です。

SharePoint Online だけでなく、OneDrive for Business と OneDrive のファイルもこの方法で、扱うことができます。

また、Box や Dropbox などのクラウド ストレージサービスも同様にクライアント端末との同期ツールを提供していますので、それらのサービスでも今回のような利用ができる可能性があります。

クラウド サービスに保存されたファイルを扱いたいケースは様々あると思いますので、直接の参照ではなくツールを介したワンクッションを置いた方法などを含めて利用できると利用の幅が広がると思います。

#補足 ローカルのディスク使用量の削減について
同期クライアントを介して、ローカルに保存されたファイルは、ファイル・フォルダを右クリックメニューの "空き領域を増やす" から、クラウド上にのみファイルを保存することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/5ef7642f-2716-0561-a9ea-41c729f386cd.png)

また、使用していないファイルを自動でファイルを開放する場合は、ストレージ センサーを有効にすることで、自動的にオンライン専用(ローカルから削除)にすることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/78c3ecdd-c19f-58ac-3dee-8493e4a1c446.png)

ストレージ センサーの詳細については、下記公開情報をご参照ください。

https://support.microsoft.com/ja-jp/office/-de5faa9a-6108-4be1-87a6-d90688d08a48