Power AutomateでSharePoint上のExcelを読み込もうとしたら、テーブルがドロップダウンに出てこない、フローを実行するとAPIエラーが出る……
そんなトラブルに直面した経験はないでしょうか。
特にExcel周りのエラーは、エラーメッセージだけでは原因が特定しにくいという点で厄介です。
Power AutomateがSharePoint上のExcelを読み込めない原因は、大きく4つのパターンに分かれます。
この記事では、それぞれの症状と対処法を順番に確認していきます。
フロー全般の動作不具合についてはPower Automateのフローが動かない原因と直し方|エラー別の対処法まとめもあわせてご覧ください。
まず確認|Power AutomateがSharePoint上のExcelを読み込む仕組み
原因を探る前に、Power AutomateがExcelを操作する仕組みを把握しておくと、エラーの見当がつけやすくなります。
使用するコネクタは「Excel Online(Business)」
Power AutomateでSharePoint上のExcelを操作する場合、「Excel Online(Business)」コネクタを使います。
このコネクタには「表内に存在する行を一覧表示」などのアクションが含まれており、Excelのデータを取得・更新できる仕組みになっています。
この4つの設定項目のうち、「テーブル」の指定でつまずくケースが最も多いでしょう。
原因①テーブル化されていないExcelは読み込めない
Power AutomateのExcel読み込みエラーの中で、最もよく起こるのがこのパターンです。
Excelのデータが「テーブル」として書式設定されていないと、Power Automateはそのデータを認識できません。
テーブルが見つからないエラーの正体
テーブルとして書式設定されていないExcelのデータにアクセスしようとすると、アクション設定のドロップダウンにテーブルが表示されない、または実行時に「APIを実行するエラー」が発生するとされています。
テーブル化していないセル範囲は、Power Automateの読み取り対象にならないというわけです。
テーブル化の手順
| 手順 | 操作内容 |
|---|---|
| 1 | SharePoint上のExcelをブラウザまたはExcelアプリで開く |
| 2 | 見出し行を含むデータ範囲全体を選択する |
| 3 | 「挿入」タブ→「テーブル」を選択(またはCtrl+T) |
| 4 | 「先頭行をテーブルの見出しとして使用する」にチェックを入れてOK |
| 5 | 「テーブルデザイン」タブでテーブル名を英数字に変更して保存する |
テーブル名に日本語を使うと誤動作するリスクがある
テーブル化を済ませても、テーブル名に日本語を使っていると、フロー実行時にエラーが発生するケースが報告されています。
Power AutomateがテーブルIDを解釈する際に、日本語名が原因で認識不良を起こすことがあるためです。
テーブル名は「Table1」や「SalesData」など、英数字で設定しておくのが安全でしょう。
原因②ファイルの保存場所・上書き(置換)の問題
Excelのテーブル化は問題ないのにエラーが出る場合、次に確認したいのがファイルの保存場所と、ファイルの「上書きアップロード」を行っていないかです。
ローカルPCのExcelはPower Automateから指定できない
Power AutomateのExcel Online(Business)コネクタは、OneDrive for BusinessまたはSharePoint Online上に保存されているExcelファイルにしかアクセスできません。
デスクトップやCドライブなど、ローカルフォルダに保存されているファイルをフロー内で指定しようとすると、ファイルが見つからずエラーになります。
対処法はシンプルで、対象のExcelファイルをSharePointのドキュメントライブラリかOneDrive for Businessに移動してから、フローを設定し直すことです。
ファイルを上書き(再アップロード)すると内部IDが変わりエラーになる
SharePoint上に正しくファイルを置いていても、古いファイルを削除して「同じ名前の新しいファイル」をアップロード(上書き)すると、読み込みエラーが発生します。
Power Automateのファイル選択画面(フォルダアイコン)からExcelを指定した場合、裏側ではファイルパスではなく「非表示の固有ID」で記憶されています。
そのため、ファイルを再アップロードするとこのIDが変わり、「昨日まで動いていたのに突然ファイルが見つからないとエラーになる」という厄介な症状を引き起こします。
パスによるメタデータ取得でフローを安定化させる方法
ファイルを定期的に別ファイルで上書きする(置き換える)運用の場合、SharePointコネクタの「パスによるファイルメタデータの取得」アクションを直前に配置し、そこで取得した「ID」をExcelアクションの「ファイル」項目にカスタム値(カスタム値の入力)として渡す設計がおすすめです。
この方法なら、毎回そのパスにある最新ファイルのIDを動的に取得するため、ファイルが再アップロードされてもフローが壊れません。
SharePointのファイル権限や開けないトラブルについては、SharePointファイルが開けない・編集できない原因と直し方【完全ガイド】も参考になります。
原因③接続エラーとデータ型の不一致
テーブル化とファイル指定が正しく設定されていても、別の原因でエラーが起きることがあります。
接続の状態とデータ型の確認も、症状に応じて必要になるでしょう。
「接続が無効です」エラーは再接続で解消できる
フロー設定画面や実行履歴に「接続が無効です」「接続を更新してください」と表示される場合、コネクタの認証情報が切れているサインです。
サービスアカウントのパスワード変更や、アカウントの失効が原因になることがほとんどです。
対処法は、Power Automateの「接続」画面から該当の接続を選択して再サインインすることです。
フロー内で複数のコネクタを使っている場合は、SharePoint・Excel Online(Business)双方の接続状態を確認してみてください。
日付・数値のデータ型が一致しないとエラーになる
ExcelとSharePointリスト間でデータをやり取りする際、列のデータ型が一致していないとエラーが発生します。
例えば、SharePointリスト側の列が「日付」型なのに、Excelのデータがシリアル値(数値)として読み込まれてしまうケースです。
| よくある型不一致の組み合わせ | 症状 | 対処法 |
|---|---|---|
| Excel:数値(シリアル値)/SharePoint:日付型 | フロー実行エラー・データ未登録 | Excelアクションの詳細設定で「DateTime 形式」を「ISO 8601」に設定する |
| Excel:文字列の数字/SharePoint:数値型 | 型変換エラーまたは0が登録される | int()やfloat()関数で型変換してから渡す |
| Excel:空白セル/SharePoint:必須列 | 必須列がnullになりエラー | coalesce()やif()で空白チェックを追加する |
エラー発生後はフローの実行履歴からエラーが出たアクションを開くと、具体的なエラーメッセージを確認できます。
OneDriveとSharePointの使い分けで迷っている場合は、OneDriveとSharePoint 違いを比較|どっちを使うか場面別に解説が参考になるでしょう。
Q&A【よくある疑問まとめ】
まとめ
Power AutomateでSharePoint上のExcelが読み込めない原因は、大きく4つです。
テーブル化の漏れ、ローカル保存のファイルを指定している、同名ファイルの上書きによるID変更、接続エラーやデータ型の不一致——
この順番で確認していくと、原因を効率よく特定できます。
特にテーブル化の漏れと日本語のテーブル名は、発生頻度が高いトラブルです。
Excelを準備する段階から「テーブル化+英数字のテーブル名」を徹底しておくだけで、多くのエラーを事前に防げるでしょう。
Power Automateのメール送信まわりでもエラーが出ている場合は、Power Automateでメール送信できないエラーの原因と直し方|症状別に解説も参考にしてみてください。