Google Apps ScriptからPower Automateへ移行しようとする場合、Google Apps Scriptで動いていた処理の一部がそのままでは動作しません。
原因は実装の巧拙ではなく、コードで何でも書けるGoogle Apps Script(Googleスプレッドシートに付属するスクリプト環境)と、コネクタ単位で機能を提供するPower Automateという設計思想の違いにあります。
この記事では、Power Automateでできないことにあたる4つの制約とその回避策、逆にPower Automateが得意とする機能を整理しています。
前提:Power Automateの制約は設計思想の違いから来る
Power Automateでできないことの大半は、機能不足ではなくライセンス体系と実行基盤の違いから来ています。
Google Apps Scriptはコードで書ける自由度が高く、UrlFetchAppのように任意のURLを呼び出す処理も、正規表現を使った文字列加工も、すべて無料の範囲で実装できます。
一方Power Automateは、あらかじめ用意されたコネクタとアクションを組み合わせるノーコード基盤のため、標準コネクタでカバーされない処理や高頻度の実行には、ライセンスの追加や設計変更が必要になる場面が出てきます。
どちらが優れているかではなく、どこまでを無料の標準機能でまかない、どこから追加費用の判断が必要になるかを先に把握しておくことが移行判断の起点になります。
Google Apps ScriptとPower Automateのどちらで新規に作るべきかをまだ決めていない場合は、判断基準を以下の記事で整理しています。

移行時に引っかかる4つの制約とは?
移行時に発火する制約は主に4つあります。
いずれも、Google Apps Scriptでは無料でできたことに、Power Automateでは追加のライセンスや設計変更が必要になるという構造で起きます。
以下では、無料枠の境界・トリガーの粒度・データ加工の複雑さ・実行回数の上限の順に、実務で当たる場面と回避策を整理します。
どれも仕様書を読んだだけでは気づきにくく、実際にフローを組んで動かした段階で発覚することが多い制約です。
外部APIの呼び出しに追加ライセンスが必要になる
Google Apps ScriptのUrlFetchAppは無料で任意のURLを呼び出せます。
GmailやSlack、社内システムのAPIなど、宛先を問わず追加費用なしでリクエストを送信できます。
一方Power Automateでは、任意のURLを呼び出す汎用的なHTTPアクションや、標準コネクタが用意されていない外部システム向けのコネクタは、無料ライセンスに含まれません。
無料ライセンスで使えるのはクラウドフローの作成・実行と標準コネクタまでで、プレミアムコネクタ・カスタムコネクタは対象外です。
出典: Microsoft Learn「Power Automateライセンスの種類」
回避策としては、呼び出し先がOutlook・SharePoint・Teamsなど標準コネクタでカバーされる主要サービスに限られる場合、追加ライセンスなしで移行できます。
カバーされない外部APIを呼ぶ設計であれば、Power Automate Premiumライセンスの月額費用をあらかじめ試算しておく必要があります。
セル編集をきっかけに動く仕組みが作れない
Google Apps ScriptのonEditトリガーは、スプレッドシートのセルが編集された瞬間にスクリプトを実行します。
承認結果を入力したらすぐ通知する、といった即時反応の仕組みを組みやすいのはこのためです。
Power AutomateのExcel Online(Business)コネクタには、onEdit相当の即時トリガーがありません。
用意されているのは「行が追加、変更、削除されたとき」のようなポーリング型のトリガーで、一定間隔でシートを確認しに行く仕組みのため、編集した瞬間ではなく数分単位の遅延が発生することがあります。
即時性が業務上重要な場合は、ポーリング間隔による遅延を許容するか、Office Scripts(Excelの操作をTypeScriptで自動化する仕組み)とボタン操作を組み合わせて、ユーザーの明示的な操作をトリガーに変える設計に変更する必要があります。
複雑なデータ加工はフローだけでは組みにくい
Google Apps Scriptでは配列操作・正規表現・多重ループなど、JavaScriptの構文をそのまま使って複雑なデータ加工を書けます。
Power Automateのフローは、コネクタとアクションを並べるノーコード設計が基本のため、条件分岐や配列操作の段数が増えると、フロー自体が長大化して保守しづらくなります。
実務では、複雑な加工ロジックをフロー内の式だけで再現しようとして詰まるケースが多く見られます。
回避策は、複雑な加工部分だけをOffice Scriptsに切り出し、Power Automateからは「スクリプトの実行」アクションで1回呼び出す設計に変えることです。
フロー側は呼び出しと結果の受け渡しに専念させ、加工ロジックはコードで書ける場所に寄せます。
実行回数の上限がライセンスで決まる
Google Apps ScriptにはPower Automateのような日次アクション数の上限がなく、Google側のクォータに達しない限り実行し続けられます。
Power Automateでは、24時間あたりに実行できるアクション数がライセンスで決まっています。
公式の制限値は、Power Automate Premiumライセンスがユーザー1人あたり40,000件です。
無料のPower AutomateプランとMicrosoft 365ライセンスに付属する枠は、いずれもユーザー1人あたり6,000件です。
出典: Microsoft Learn「要求の制限と割り当て」
1件の処理で複数のコネクタアクションを使うフローだと、想定より早く上限に到達することがあります。
処理件数が多い業務を移行する場合は、事前に1回あたりのアクション数と1日の実行回数を掛け合わせて試算し、上限に近づくようならPremiumライセンスやプロセスライセンスの追加を検討する必要があります。
移行の具体的な進め方と機能の対応表は、以下の記事にまとめています。

逆にPower AutomateにあってGoogle Apps Scriptにないもの
Power Automateには、Google Apps Scriptでは自作が必要な機能が標準で用意されています。
承認機能(Approvals)は、申請の送信から承認・却下の記録までをフロー標準の機能で完結でき、Google Apps Scriptのように承認画面やステータス管理をゼロから実装する必要がありません。
Teamsとの連携も標準コネクタとして最初から用意されています。
Google Apps ScriptでTeams連携を行う場合はWebhook URLを都度UrlFetchAppで呼び出す実装が必要になりますが、Power AutomateではTeamsのコネクタを選ぶだけで通知・投稿のアクションが使えます。
さらに、Power Automate Desktopを使えば、コネクタが用意されていない古い業務システムに対しても、マウス操作やキー入力を模倣するRPA(ロボティック・プロセス・オートメーション:人間の操作を模倣してソフトウェアを自動操作する技術)で自動化できます。
Google Apps Scriptはブラウザ操作を模倣する仕組みを持たないため、自動化の対象がWeb APIやスプレッドシートの外にある場合は、Power Automateの方が選択肢が広くなります。
移行前チェックリスト(自分のスクリプトを仕分ける)
Google Apps Scriptで書いた自分のスクリプトが今回の4つの制約に当てはまるかは、以下の表の4項目で仕分けられます。
| 確認すること | 該当した場合の対応 |
|---|---|
| UrlFetchAppで標準コネクタにない外部APIを呼んでいるか | Premiumライセンスの追加費用を確認する |
| onEditトリガーで即時反応させているか | ポーリングの遅延を許容するか、設計そのものを変更する |
| 配列操作・正規表現・多重ループを含む複雑な加工があるか | Office Scriptsの併用を検討する |
| 1日の実行回数・処理件数が多いか | 1回あたりのアクション数×1日の実行回数が6,000件を超えそうならPremiumライセンスの追加を試算する |
チェックした結果、4項目すべてに当てはまらなければ、無料ライセンスのままでも移行を進められる可能性が高くなります。
逆に複数の項目に当てはまる場合は、移行前にライセンス費用と設計変更の工数をまとめて見積もっておくと、着手後の手戻りを避けられます。
まだGoogle Apps Scriptでの自動化そのものに着手していない場合は、どの業務から自動化すべきかを以下の記事で整理しています。

この4つの制約、自社のスクリプトに当てはまるか先に確かめませんか?
対象の業務フローを3本まで、5万円固定でまず検証だけを依頼できます。
納品するのは、フローごとの移行可否判定と概算の実装工数です。
あわせて、4つの制約のうちどれに該当し何がつまずきの原因になるかをレポートにまとめます。
検証の結果、該当する制約が多く移行に向かないと分かった場合も、その理由と代替案をレポートに明記してお渡しします。
よくある質問
Q. Google Apps Scriptの無料アカウントから移行する場合も同じ制約に当たりますか?
はい、同じ制約に当たります。
UrlFetchAppの無料呼び出しやonEditの即時トリガーはGoogleアカウントの種類に関わらず使える機能のため、移行先がPower Automateであれば、個人アカウントでも組織のアカウントでも同じライセンス上の制約を受けます。
Q. 無料ライセンスのままどこまで検証できますか?
標準コネクタで完結する処理であれば、無料ライセンスのままフローの動作確認まで進められます。
プレミアムコネクタやカスタムコネクタを使う設計は無料ライセンスでは動かせないため、Power Automateの試用版ライセンスを使うと、追加費用をかけずにPremium相当の機能を確認できます。
Q. 4つの制約を確認したあと、実際の移行作業はどう進めればいいですか?
制約に当たるスクリプトを洗い出したら、ライセンス追加で済む部分と設計変更が必要な部分を分けて計画します。
制約が多く移行の負担が大きい場合は、そもそも移行せずGoogle Apps Scriptに残す判断もあるため、その判断基準を以下の記事で整理しています。
