はじめに
Power Automate Desktop(PAD)のバージョン 2.64 で、いわゆる「標準コネクタ」と呼ばれるコネクタ群の利用にPremiumライセンスが不要になりました。
そこで SharePoint Online(SPO)に保存されたExcelファイルを操作しようとして、次のような流れを試したことはありませんか?
- SharePointコネクタ「パスによるファイルコンテンツの取得」で、SPOドキュメントライブラリからxlsxを取得
- Excelコネクタ「Excelの起動」の「ドキュメントパス」に手順1の返り値である変数を指定
・・・私はあります!
一見うまく行きそうに見えますが、実行すると以下のエラーががが。
パラメーター 'ドキュメント パス': 引数 'ドキュメント パス' は 'ファイル' である必要があります。
ここでハマるのは自分だけかもしれませんが、世界にもうひとりいる かもしれない 「🤔起動しないのはなぜだ」さんのために記事にしたためておきます。
検証したPADのバージョン
2026年4月30日時点で最新バージョンである「2.67」です。
なぜエラーになるの?
原因は、 「渡しているデータの種類(型)が違う」 ことです。
SPOコネクタ「パスによるファイルコンテンツの取得」で返されるのは、 ファイルの中身(バイナリデータ) です。バイナリデータとは、ファイルの内容を0と1の数値で表したデータのことで、人間が直接読めるものではありません。
一方、Excelコネクタ「Excelを起動」アクションの「ドキュメントパス」パラメータに指定できるのは、ファイルの実際の場所を示すパス(例:C:\Users\username\Desktop\test.xlsx)です。
| アクション | 扱うデータ |
|---|---|
| SPOコネクタ「パスによるファイルコンテンツの取得」 | バイナリデータ(ファイルの中身) |
| Excelコネクタ「Excelの起動」の「ドキュメントパス」 | ファイルパス文字列(ファイルの場所) |
「ファイルコンテンツ=ファイルそのもの」ではなく、「ファイルコンテンツ=ファイルの中身データ」です。
ネイティブアプリのExcelが開けるのはあくまで「場所(パス)」で示されたファイルそのものであるため、中身データをそのまま渡してもエラーになってしまう、ということなのです。
解決策:一旦ローカルに保存してから開く
SPO上のファイルはPCのローカルにパスを持ちません。そのため、バイナリデータをいったんPC上に保存してから、Excelで開くという手順が必要です。
💡「ローカル」とは?
自分のPC上のフォルダのことです。ダウンロードフォルダやデスクトップ、C:\Temp\など。
フローの構成
- SPOコネクタ「パスによるファイルコンテンツの取得」
└ 結果変数:GetFileContentByPathResponse - ファイルコネクタ「バイナリデータをファイルに書き込む」
└ 書き込むデータ:GetFileContentByPathResponse
└ ファイルパス: ローカル上にある書き込み用xlsx のパスを指定 - Excelコネクタ「Excelの起動」
└ ドキュメントパス: 手順2 のファイルパス
手順2を間に挟むことで、バイナリデータをExcelが開けるファイルとして保存できます。
あくまでも個人的にですが、同期させている場合にはOneDriveフォルダも避けるようにしています。C:\Users\username\OneDrive など はローカルパスのように見えますが動作が不安定になることがありました。
まとめ
- SPOコネクタ「パスによるファイルコンテンツの取得」の戻り値はバイナリデータであり、ファイルパスではない
- Excelコネクタ「Excelの起動」にはファイルパス文字列が必要なため、バイナリデータをそのまま渡すとエラーになる
- 解決策は、ファイルコネクタ「バイナリデータをファイルに書き込む」で一旦ローカルに保存してから開くこと
