Power Automateで前月分をSharePoint→Excelへ送るときの落とし穴(用語解説つき)
このメモは、Power Automateで以下を実現しようとして苦戦したポイントを、用語の意味も交えながら丁寧にまとめたものです。
- 毎月1日に自動実行(スケジュール)
- SharePoint Onlineリストから前月分のデータを取得
- テンプレートExcelをコピーして新規ファイル作成
- 取得データを1件ずつExcelのテーブルに追加
- ExcelをPDF化
0. まず結論:何が難しかったのか?
今回つまずいた箇所は次の3つです。
- データの “見た目の名前” と “内部で使われる名前" (以下:内部名)が違うのでそれを調べることが必要
- Excelへ追加する時は“テーブル化”が必須で、要求される形が厳密
- そもそも使いづらい(
ほんとにIT企業が開発したアプリか?)
1. 用語解説(最低限これだけ押さえる)
✅ Power Automate(フロー)
Microsoftの自動化ツール。
「トリガー(きっかけ)→ アクション(処理)」をつないで作る。
「ロー コードと AI を利用したロボティック プロセス オートメーションを使用して、より速く移動し、よりスマートに作業し、自信を持ってスケーリングできます。」 公式サイトより
Microsoft製品と繋げなきゃいけないという時に真価を発揮する?(逆にその必要がない場合は不要)
✅ SharePoint Onlineリスト
Excelの表みたいに、行(アイテム)が並ぶデータベース。
- 1行 = 1件のデータ(アイテム)
- 列(カラム) = 利用日、所属、氏名など
✅ フィルタークエリ
SharePoint Onlineから取得するときに「条件に合うデータだけ取る」ための式。
例:「前月の利用日だけ取得」など。
✅ For each(それぞれに適用)
データが複数件あるときに、1件ずつ繰り返し処理するループ。
例: SharePoint Onlineからデータを10件取れたら、10回「表に行を追加」が実行される
✅ Excelテーブル(Table)
Power AutomateでExcelに行追加する時は、セル範囲ではなく “テーブル” を相手にする。
Excelで「挿入 → テーブル」で作るもの
テーブルが無いと「表に行を追加」は基本的に動かない
テーブルの作成とテーブル名の指定にはこちらのサイトを参考にさせていただきました。
✅ 内部名(Internal name)
SharePoint Onlineの列は、画面に見えている“表示名”とは別に、内部で使う名前がある。
特に日本語列は、内部名が暗号っぽい形になりがち。
2. 苦戦ポイント①:SharePoint Onlineの列名が「利用日」じゃない
起きた現象
データベースから、「利用日」「所属」「氏名」を参照できない
“““フローの保存がコード ‘InvalidTemplate’ およびメッセージ ‘The template validation failed: ‘The repetition action(s) ‘Apply_to_each’ referenced by ‘inputs’ in action ‘表に行を追加’ are not defined in the template.’.’ で失敗しました。”””
原因
SharePoint Onlineの取得結果を見ると、列名がこうなっていた:
利用日(表示名)ではなくOData__x5229__x7528__x65e5_(内部名)
つまり、式で ['利用日'] を指定しても存在しない扱いになり、エラーが出る。
内部名はどうやって知る?
テスト を実施して、「複数の項目の取得」の出力の生データを確認する。
そこに “本当のキー名” が出てくる。
5. 苦戦ポイント④:Excel「表に行を追加」は“1行オブジェクト”が必要
起きたエラー(最初の方)
A value must be provided for item
原因
「表に行を追加」の item(行)には、1セルではなく
- 1行分(1データ)
を渡す必要がある。
✅ 実際に渡されるデータのイメージ
{
"利用日": "2026/02/17",
"所属": "鰻屋",
"氏名": "藤井",
...
}
6. 苦戦ポイント⑤:成功してるのに「空に見える」問題
❌ 起きた勘違い
「成功になってるのにExcelに反映されてない!」
Power Automate上では(クラウド上のフロー)エラーが出ていないのに、 Excelシートを見ると「データが入っていない」ように見えた。
🔍 実際はどうだったか
実行履歴のレスポンスを見ると:
statusCode: 200- 追加した行の値(利用日、所属、氏名など)
がしっかり返っていた。
つまり:
処理自体は成功していた。
💥原因
- 処理成功から実際の保存・反映まで約30秒のラグがある
解決方法
- “遅延”を用いて30秒待たせた。(
保存終わってから次の処理走らせろよ)
8. 本番移行時に発生した「接続破損」エラーの教訓
❗ 発生したエラー
'表に行を追加' の接続が破損しています。
接続を修正してください。
🔎 なぜ起きたのか?
Power Automateの接続(SharePoint Online や Excel Online の API 認証)は、以下に紐づいている:
- ユーザーアカウント
- 環境(開発/本番)
- 認証トークン
そのため、
開発環境で作成した接続は、本番環境ではそのまま使えない
ことがある。
フロー自体は正常でも、接続情報だけが無効になる。
✅ どの接続が壊れているか確認する方法
方法①:アクション単位で確認(最も確実)
- フローを編集モードで開く
- 問題のアクションをクリック
- 右側パネル上部の「接続」欄を確認
⚠ 「無効」「修正が必要」と表示される
方法②:接続一覧から確認
- 左メニュー → 「データ」
- 「接続」
- 状態が「エラー」になっているものを探す
🔧 対処方法
- 「接続を修正」をクリック
- 新しい接続を作成
- 本番用アカウントで再認証しても上手く行かなかったので、失敗したブロックを削除して同じものを作り直した。