自動化

Power AutomateのExcel操作とは?テーブル必須の制約・256行の壁・調整制限から実装を設計する

Excelの行を1件追加するフローは、Power Automateを開いて数分で動きます。行き詰まるのはその次です。シートを選んでもテーブルが出てこない、取得したはずの行が256件で切れている、1万行の更新が終わらない、更新したのに反映されていない。いずれもコネクタ側の仕様で説明がつき、着手前に知っていれば設計段階で避けられます。この記事では、Excelを触る三つの経路、行取得の件数制限、更新のスループット、大量行の分割処理、デスクトップフローへ倒す条件を、Microsoft Learnの記載に沿って整理しました。製品そのものの概要はPower Automateとは?基本・できること・料金・導入判断まで解説をご覧ください。

まとめ:経路の選択と行数の見積もりと調整制限で決まる

先に結論を置きます。Excel Online(Business)コネクタが読み書きできるのはテーブルとして定義された範囲だけで、値が並んだだけのシートには手が届きません。テーブル化できない相手なら、その時点でOfficeスクリプトかデスクトップフローへ倒す判断になります。テーブル化できるなら次に見るのは行数で、数百行までは標準アクションを素直に並べて構いません。数千行なら選択と作成でループを削って塊に分割し、数万行を毎日回すなら往復回数そのものを減らす設計へ切り替えます。

天井も先に引いておきます。コネクタが扱えるファイルは25MBまで、1要求あたり5MBまで、調整制限は接続ごと100回60秒。行の一覧は既定で256行までしか返さず、追加や更新の反映には最大30秒の遅延が生じ、ファイルは最後の呼び出しから最大6分ロックされることがあります。数値はいずれもMicrosoft Learnの記載で、2026年8月時点の値です。

Excelを触る三つの経路と、それぞれが前提にする実行基盤の違い

Power AutomateからExcelを操作する道は三つあります。どれを選ぶかで、後から効いてくる制約がまるごと入れ替わります。

コネクタの行アクションはテーブルとして定義された範囲しか見ない

Excel Online(Business)コネクタの「テーブルに存在する行を一覧表示する」「テーブルに行を追加する」「行を取得する」「行を更新する」「行を削除する」は、すべてテーブルを対象にしたアクションです。ファイル内にテーブルが1つも無ければ、テーブル選択のドロップダウンは空のままになります。これがつまずきの第一関門で、フローを作る前に相手のブックを開いてテーブルへ変換しておく必要があります。

対応する形式とファイルサイズの上限が経路選択の前提条件になる

コネクタが扱えるのは.xlsxと.xlsbで、マクロ有効ブックの.xlsmは「スクリプトの実行」アクションだけがサポートします。ピボットテーブルはGraph APIの制約により対象外です。サイズはファイル25MBまで、コネクタの1要求あたり5MBまで。加えて、読み取り系のアクションを実行するだけでもファイルへの書き込みアクセスが必要で、権限が足りなければ403、ブックが読み取り専用モードなら502が返ります。

読み取り系のアクションを走らせただけでもファイルは更新され、SharePoint側のバージョン履歴に新しい版が積まれる点も見落とされがちです。コネクタ内部の保存機構による仕様で、履歴を監査に使っている現場では事前の説明が要ります。ファイルの置き場と権限そのものの設計はPower AutomateのSharePoint連携とは?トリガー選定・無限ループ回避・権限設計を実装目線で解説で扱っています。

コネクタとスクリプトとデスクトップフローの守備範囲を並べて比べる

経路 扱える対象 主な制限
コネクタの行アクション テーブルの行 接続ごと100回60秒
スクリプトの実行 シート全体を一括処理 10秒3回・1日1600回
デスクトップフロー セル・書式・マクロ 端末とExcel本体が必要

クラウドで完結させたいならコネクタかスクリプトの実行、端末の画面を介した操作が要るならデスクトップフローという分け方になります。フロー種別そのものの違いはPower Automateのクラウドフローとデスクトップフローの違いとは?トリガー種別・実行基盤・ライセンス差で選び分けるを参照してください。

行の取得で最初に当たる256行の壁と、フィルタークエリが効く範囲

テーブル化を済ませて最初に組むのが行の取得です。ここで多くのフローが、気づかないまま欠損したデータを下流に流します。

既定は256行までで、改ページを有効にして初めて全件を取り切る

「テーブルに存在する行を一覧表示する」は、既定で最大256行しか返しません。エラーにはならず、257行目以降は黙って落ちる仕様です。全件を取るには、アクションの設定メニューで改ページを有効にします。有効にすると、フローエンジンは全項目を取得するか、設定で明示したしきい値に達するまでサービスを呼び続けます。

しきい値を大きく取れば無制限に伸びるわけではありません。フロー側にも「ページ付けされた項目」の制限があり、Lowで5,000、それ以外で100,000が上限です。ライセンス区分によってこの天井が動くため、行数の見積もりは権利の区分とセットで確認します。区分ごとの内訳はPower Automateの料金・ライセンスとは?Premium/Process/従量課金の区分と見積もり手順を解説【2026年版】にまとめました。

フィルタークエリで使える関数は五つで、並べ替えは一列に限られる

取得件数を減らす王道はフィルタークエリですが、使える関数は限られます。サポートされるのはeq、ne、contains、startswith、endswithの五つで、1つの列に適用できるフィルター関数は1つだけ、並べ替えに使える列も1つだけです。さらに、フィルタークエリと並べ替えと列指定のいずれも、英数字の列名しかサポートしません。日本語の列名を並べたテーブルでは、この時点で条件指定の道が閉じます。

挙動にも癖があります。フィルターや並べ替えを使うと、返る値が最新でない場合があるほか、フィルターを指定しなければExcel側に設定済みのフィルターは無視されて全行が返り、指定すれば既存フィルターの上に積み上がります。画面で絞り込んだ状態とフローが見ている集合は別物だと考えて設計してください。

列名の表記と見出しの桁の扱いが原因不明のエラーを生むことがある

列に関する制約は、ほかにも次のとおりです。1回の取得で返るのは既定で最初の500列までで、必要な列だけを取るなら列指定パラメーターにカンマ区切りで並べます。列名にピリオドやアットマーク、コロン、シャープが含まれると、応答側でエンコードされた表記に変換されます。ピリオドは_x002e_、アットマークは_x0040_、コロンは_x003a_、シャープは_x0023_です。動的なコンテンツの名前が見慣れない文字列になっていたら、まずここを疑います。

数字だけの列見出しも避けます。ヘッダーが数値のみだと、行の更新や削除で予期しない動作が起きることがあり、回避策は列名に文字を混ぜることだと明記されています。キー列の名前は大文字と小文字が区別され、1つのテーブルに対してワークフローをまたいで使えるID列のバリエーションは最大2つまでです。

更新と追加のスループットを決めるのは調整制限とループの組み方

取得が通ったら次は書き込みです。ここは行数がそのまま所要時間に跳ね返るため、見積もりの精度が要ります。

接続ごと100回60秒という調整の枠が実質の処理速度を決めている

Excel Online(Business)コネクタの調整制限は、接続ごとのAPI呼び出しが60秒あたり100回です。行の更新も追加も削除も1行1呼び出しなので、この枠がそのまま毎分の処理行数になります。1,000行を1件ずつ更新する処理は、理論値でも10分を超える計算です。短時間に要求を詰め込むと429が返り、Microsoftの案内もコネクタアクションに明示的な遅延を挟むことを勧めています。

もう1つ、行の更新と削除で複数の行がキー値に一致した場合、更新も削除も最初の1行にしか掛かりません。重複キーがあるテーブルでは、残りの行が黙って取り残されます。

同時実行の設定を上げれば速くなるという前提はこの枠の前で崩れる

Apply to eachには同時実行の設定があり、既定は1、1から50まで引き上げられます。ただしこれはフロー側の並列度で、コネクタ側の毎分100回という枠は動きません。並列度を上げると、単位時間あたりの呼び出しが枠を突き抜けて429が増え、結果として再試行の分だけ遅くなることがあります。同時実行はまず1のままで実測し、余裕を確認してから段階的に上げます。

ループ周辺の上限もここで押さえます。Apply to eachが処理できる配列項目はLowで5,000、それ以外で100,000。Untilの反復は既定60で最大5,000。1つのワークフローに置けるアクションは500、ネストの深さは8まで。500に届く前から編集画面が重くなるため、実務では子フローへ切り出す判断が先に来ます。

反映の遅延とファイルのロックを織り込まないと二重投入が起きる

行の追加や更新は、アクションが成功応答を返した直後に必ず反映されているとは限りません。バックエンドの都合で最大30秒の遅延が想定されています。書き込んだ直後に同じ行を読み直す処理は、この遅延を踏むと古い値を拾います。

ファイルは、最後にコネクタを使ってから最大6分間ロックされることがあります。同じブックに複数のフローや人が同時に書き込む構成は、マージ競合とデータ不整合の温床です。加えて、複雑な数式や行数の多いシートでは再計算によるタイムアウトが起き、30秒を超えた要求は504を返します。このとき再試行ポリシーが働き、同じデータが複数回挿入されることがあります。回避策として案内されているのは、数式を減らすこと、ブックの計算モードを手動に切り替えること、行数が多い場合は同じ形式の別ブックへ分けることです。

大量行を捌く三つの手:作成と選択、塊への分割、スクリプトへの寄せ

ここからが実装の勘所です。目的は一つで、コネクタの往復回数を減らすことに尽きます。

選択と作成でループを削り、コネクタ呼び出しの回数そのものを減らす

データ操作の「選択」は、配列の各要素から必要な項目だけを抜き出して新しい配列を作るアクションです。取得した行から3列だけ使うなら、選択で3列の配列へ整形してから後段へ渡します。「作成」は式や中間データを1つの出力として保持するアクションで、同じ変換を何度も書く代わりに1か所へまとめられます。

この2つが効くのは、Apply to each の中でコネクタを呼ばずに済む形へ持っていけるからです。フィルター配列や条件分岐でExcelへ書き戻す対象を絞り切ってからコネクタを呼べば、100回60秒の枠を消費する回数が桁で変わります。変数の設定を並べる書き方よりアクション数も減り、1ワークフロー500アクションの枠にも余裕が出ます。

スキップ数と上位カウントで塊に割り、子フローへ切り出して回す

「テーブルに存在する行を一覧表示する」には上位カウントとスキップ数のパラメーターが用意されています。500行ずつ、1,000行ずつと塊に割って取得し、塊ごとに処理する構成なら、1回の実行が抱えるデータ量と実行時間を抑えられる設計です。塊の処理を子フローに切り出せば、親フローのアクション数とネストの深さも節約できます。

親から子を呼ぶ形にする場合、送信同期リクエストのタイムアウトが120秒である点に注意します。子フローの処理が2分を超える見込みなら、応答を待たない構成にするか、非同期のポーリングパターンへ寄せます。

スクリプトの実行に処理を寄せると往復は1回で済むが別の枠に入る

行単位のコネクタ呼び出しを根本から減らす手段が、Officeスクリプトを走らせる「スクリプトの実行」アクションです。シート内の繰り返し処理をスクリプト側に閉じ込めれば、Power Automateからの呼び出しは1回で済み、100回60秒の枠をほとんど消費しません。マクロ有効ブックの.xlsmを扱えるのもこのアクションだけです。

ただし別の枠に入ります。スクリプトの実行は10秒あたり最大3回、1日あたり最大1,600回まで。10秒に3回を超えると調整されます。また、政府機関向けを含むソブリンクラウドでは、このアクション自体が使えません。既定の場所以外にスクリプトを置いた場合は「SharePointライブラリからスクリプトを実行する」を選びます。

デスクトップフローのExcelアクションへ倒す条件と増える前提

クラウド側でどうしても届かない要件があります。そのときはPower Automate DesktopのExcelアクションへ切り替えます。

書式とマクロとピボットが要件に入った時点で切り替えを検討する

デスクトップフローのExcelアクションは、Excel本体をCOM経由で動かす仕組みです。そのため、セルの背景色を16進で指定する、ワークシートのフィルターや並べ替えを操作する、マクロを名前と引数で実行する、数式そのものを読み取る、といったコネクタ側に無い操作が可能です。保存形式も広く、.xlsxや.xlsmに加えて.xlsb、.csv、.ods、Strict Open XMLなどを指定できます。ピボットテーブルの範囲取得にも対応しています。

読み書きの粒度も違います。「Excelワークシートから読み取る」は単一セル、セル範囲、選択範囲、ワークシート全体を選べ、範囲で読めばデータテーブル型の変数へ一括で入ります。「Excelワークシートに書き込む」もテーブルを含む変数を渡せば右方向と下方向へまとめて展開されるため、セルを1つずつ触る書き方より範囲単位で一括に寄せるのが定石です。なお2.58以降は、セルの内容を「入力された値」「プレーンテキスト」「書式設定されたテキスト値」から選べます。

同期フォルダにあるファイルはCOMと相性が悪く回避策を組み込む

デスクトップフロー側にも固有の制約があります。OneDriveで同期したフォルダにあるSharePointのファイルは、COM経由で起動したExcelインスタンスと完全な互換性がありません。Excelの起動アクションでファイルが見つからないというエラーになることがあります。

案内されている回避策は二つです。一つは、対象ファイルのローカルコピーを作ってそこへExcelアクションを実行し、最後に同期側へ上書きする流れ。もう一つは、アプリケーションの実行アクションでExcelを起動し、アドインの読み込みが終わるまで待ってから「実行中のExcelに添付する」で掴む流れです。どちらも待ち時間とファイル操作が増えるため、設計の手数として最初から見込んでおきます。製品そのものの範囲はPower Automate Desktopとは?無償RPAでできること・使い方・導入判断を解説、導入の手順はPower Automate Desktopのインストールと初期設定|MSI版とストア版の違いからマシン登録まで解説で扱っています。

三つの経路をどう選ぶかの条件と、内製で組み切れる範囲の線引き

ここまでの制約を、着手前に下せる判断へ落とします。

対象の行数と操作の種類の二軸から採用する経路を条件付きで決め切る

コネクタの行アクションを採るのは、対象がテーブル化できて、1回の実行で触る行が数百行までで、扱うのが値の読み書きだけの場合です。この条件なら追加の環境も要らず、保守も画面の中で完結します。

スクリプトの実行を採るのは、対象がテーブル化できて、行数が数千を超えるか、シート内で完結する集計や整形が要る場合です。1日1,600回の枠に収まる呼び出し頻度であることを先に確かめます。日次のバッチ用途なら、まず当たりません。

デスクトップフローを採るのは、書式やマクロやピボットが要件に入る場合、テーブル化がどうしてもできない場合、そしてファイルがローカルや基幹システムの出力先にあってクラウドから到達できない場合です。この経路は端末とExcel本体、無人実行ならマシンの登録と権利が要ります。

Excelを操作の対象から外す判断が要る局面を着手前に見分ける

自動化の相談で最も惜しいのは、Excelを触り続ける前提を疑わないまま設計に入ることです。次のどれかに当たっているなら、フローを作り込む前にデータの置き場を移す検討を挟みます。

  • ファイルが25MBに近づいている、または月ごとに肥大している
  • 複数のフローや複数の人が同じブックへ同時に書き込む必要がある
  • 誰がいつ何を変えたかを、行単位で追える記録が求められる
  • 同じキーの行が重複し、更新の対象を一意に決められない
  • 毎分100回の枠では、処理したい行数を業務時間内に捌けない

いずれもExcelの制約ではなく、表計算ファイルを共有データベースとして使っていることが原因です。SharePointリストやDataverseへ移せば、同時更新も履歴も枠の広さも自然に解決します。移行そのものが重いなら、当面はExcelを入力の受け皿に残し、フローで受けた時点で別の器へ写す構成が現実的です。

内製で組み切れる範囲と実装支援へ切り出す判断の分かれ目を整理する

情報システム部門や業務部門で内製できるのは、テーブル化済みの数百行を対象にした取得と追加、条件分岐、通知までです。ここは画面の操作と設定の理解で届き、外部に出すほうがかえって遅くなります。

切り出しを考えるのは、分割処理や子フローの設計が要る規模になったとき、Officeスクリプトを書き起こす必要が出たとき、そして無人実行の権利とマシンの構成を含めた基盤設計が絡むときです。この段階は、失敗時の再実行と重複投入の防止をどう設計するかが品質の大半を決め、経験の差がそのまま安定性の差になります。当社ではPower Automate導入支援・RPA移行として、現行のExcel運用の棚卸しから、どこまでを標準アクションで組みどこからスクリプトやデスクトップフローへ倒すかの設計、無人実行の基盤づくりまでを一貫して支援しています。

よくある質問

テーブルにしていないシートの値を、そのまま読み書きできますか?

Excel Online(Business)コネクタの行アクションはできません。対象はテーブルとして定義された範囲に限られます。方法は三つで、ブック側でテーブルへ変換しておく、コネクタの「テーブルの作成」で範囲を指定して作る、またはOfficeスクリプトやデスクトップフローのようにセル範囲を直接扱える経路へ切り替えるかです。

行の一覧が256件で切れてしまうのはなぜですか?

「テーブルに存在する行を一覧表示する」の既定値が256行だからです。エラーは出ず、超過分が静かに欠落します。アクションの設定から改ページを有効にすると、しきい値に達するか全件を取り切るまでサービスを呼び続けます。フロー側の「ページ付けされた項目」の上限はLowで5,000、それ以外で100,000です。

1万行を毎日更新する処理を、クラウドフローだけで組めますか?

組めますが、1行1呼び出しで回すと接続ごと100回60秒の枠に当たり、理論値でも100分を超えます。現実的な形は二つで、Officeスクリプトへ処理を寄せて呼び出し回数を1桁に落とすか、上位カウントとスキップ数で塊に割って複数の実行に分散させるかです。処理時間の要求が厳しいなら、Excelを操作対象から外す検討に入ります。

同じキー値の行が複数あるとき、更新はどう動きますか?

行の更新も行の削除も、一致した行のうち最初の1行だけに適用されます。残りは処理されず、エラーにもなりません。キー列の値が一意になるよう設計するか、コネクタの「テーブルにキー列を追加する」で一意な列を用意します。キー列の名前は大文字と小文字が区別される点にも注意してください。

更新したはずの値が、次のアクションで古いまま読めるのはなぜですか?

行の追加、更新、削除の変更は、成功応答の直後に必ず反映されるとは限らず、最大30秒の遅延が想定されているためです。書き込み直後に同じ行を読み直す構成は避け、必要なら遅延アクションを挟むか、書き込んだ値をフロー内の変数として持ち回します。

関連記事

資料請求

RELATED POSTS 関連記事