コンテンツへスキップ
超解決
  • トップページ
  • 詐欺メールチェッカー
  • テキスト整形ツール
  • 高機能・文字数カウント(自動保存付き)
  • パスワード生成ツール
  • 全記事一覧(サイトマップ)
  1. ホーム
  2. デジタル・IT
  3. Web・アプリ
  4. Googleスプレッドシート
  5. 【Googleドキュメント】スクリプトの実行回数制限に当たる時の分割処理

【Googleドキュメント】スクリプトの実行回数制限に当たる時の分割処理

2026年6月12日2026年6月22日
Office・仕事術 Googleスプレッドシート Googleドキュメント 会社アカウント・認証
【Googleドキュメント】スクリプトの実行回数制限に当たる時の分割処理
🛡️ 超解決

GoogleドキュメントでGoogle Apps Script(GAS)を使っていると、ある日突然「実行回数が上限に達しました」というエラーが表示されることがあります。この制限はGoogleのサービス全般に設定されているクォータ(割当量)によるもので、特に業務で大量のデータを処理するスクリプトを頻繁に実行する場合に遭遇しやすい問題です。制限に当たった場合、単に待つだけでなく、スクリプトの処理を分割して実行回数を効率的に使う方法が有効です。ここでは、具体的な原因と確認手順、分割処理の実装方法、失敗パターン、そして管理者に伝えるべき情報を詳しく解説します。

【要点】この記事で確認すること

  • 最初に見る場所: Google Apps Scriptエディタの「現在の制限」から現在のクォータ使用状況を確認する。また、実行ログやエラーメッセージの内容を確認する。
  • 切り分けの軸: 制限の種類(1日あたりの実行回数、同時実行数、合計実行時間など)を特定し、その上限に達しているのかどうかを切り分ける。また、スクリプトの処理内容(データ量やループ回数)が適切かどうかも判断する。
  • 注意点: 会社PCで共有ドライブや組織アカウントを使っている場合、スクリプトの変更には管理者の承認が必要なケースがある。また、分割処理を導入してもクォータそのものが増えるわけではないため、根本的な改善には管理者によるクォータ引き上げ申請が必要な場合もある。

ADVERTISEMENT

目次

  • 1 発生原因とクォータの種類
  • 2 制限に当たったときの確認手順
    • 2.1 1. エラーメッセージと実行ログの確認
    • 2.2 2. 現在のクォータ使用状況の確認
    • 2.3 3. トリガーの設定と実行間隔の見直し
  • 3 分割処理の実装方法
    • 3.1 チャンク分割(データ件数で分割)
    • 3.2 ジョブ分割(機能単位で分割)
  • 4 失敗パターンと注意点
    • 4.1 パターン1: 分割数が多すぎてトリガークォータに引っかかる
    • 4.2 パターン2: 再帰呼び出しでスタックオーバーフローや実行時間超過
    • 4.3 パターン3: 分割単位が小さすぎて逆にオーバーヘッドが増加
  • 5 管理者に伝えるべき情報
  • 6 よくある質問
    • 6.1 Q1: 分割処理をしてもすぐに制限に当たってしまいます。どうすればよいですか?
    • 6.2 Q2: トリガーを使わずに分割処理する方法はありますか?
    • 6.3 Q3: 分割処理のバッチサイズはどれくらいが適切ですか?
  • 7 まとめ
    • 7.1 解決 関連記事でさらに詳しく
    • 7.2 Googleスプレッドシートの人気記事ランキング

発生原因とクォータの種類

Google Apps Scriptには、サービスクォータと呼ばれる利用制限が設けられています。この制限はGoogle Workspaceの全エディション共通のものと、利用者ごとに異なるものがあります。主な制限には以下の種類があります。

制限の種類 内容 代表的な上限値
実行回数(1日あたり) スクリプト全体の実行回数。時刻トリガーやカスタムメニューからの呼び出しも含む。 コンシューマー版: 90回/日、Workspace版: 20,000回/日(エディションにより変動)
合計実行時間(1日あたり) すべてのスクリプト実行の合計時間。長時間実行で制限に当たりやすい。 コンシューマー版: 1時間、Workspace版: 6時間~無制限(エディションによる)
同時実行数 同時に実行できるスクリプトの数。トリガーが重なるとエラーになる。 コンシューマー版: 1、Workspace版: 30
特定サービスクォータ Gmail送信やURL Fetchの呼び出し回数など、サービス固有の制限。 例: Email受信者数(1日): 100、URL Fetch(1日): 20,000

これらの制限に達すると、スクリプトが途中で停止し「実行回数が上限を超えました」や「スクリプトがタイムアウトしました」といったエラーが発生します。特に、1日に何度もスクリプトを実行するバッチ処理や、大量のデータをループして処理するケースで頻発します。

※ お探しの解決策が見つからない場合は、こちらの「会社アカウント・認証トラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

制限に当たったときの確認手順

1. エラーメッセージと実行ログの確認

まずは、スクリプトエディタの「表示」→「ログ」または「実行数」から最新の実行ログを確認します。エラーが発生した場合、赤いアイコンが表示され、詳細メッセージに「Quota exceeded」や「Maximum execution time exceeded」などと記載されます。これによりどの制限に引っかかったかが特定できます。

2. 現在のクォータ使用状況の確認

スクリプトエディタのメニューから「表示」→「現在の制限」を選択します。ここには、そのスクリプトに適用されているサービスクォータの使用量と上限が一覧表示されます。「今日の実行数」「今日の合計実行時間」などを確認し、上限に近づいていないかチェックします。また、同じGoogleアカウントで他のスクリプトが動作していないかも確認しましょう。

3. トリガーの設定と実行間隔の見直し

スクリプトに時刻トリガーやイベントトリガーが設定されている場合、その実行間隔が短すぎると制限に当たりやすくなります。トリガーの設定画面から実行頻度を確認し、必要以上に頻繁に実行されていないか見直します。たとえば、1分ごとに実行するトリガーを10分ごとに変更するだけで、実行回数が大幅に削減できます。

分割処理の実装方法

制限を回避するには、一度にすべての処理を行わず、小さな単位に分割して実行する方法が効果的です。代表的な分割手法は「チャンク分割」と「ジョブ分割」です。以下に具体的な手順を示します。

チャンク分割(データ件数で分割)

大量のデータを処理する場合、一度に処理する行数やアイテム数を制限し、複数回に分けて実行します。次の例では、スプレッドシートのデータを100行ずつ処理します。

  1. 処理対象のデータ件数(例: 全行数)を取得します。
  2. 1回のバッチで処理する最大件数(例: 100行)を設定します。
  3. ループ内で開始行と終了行を計算し、その範囲のデータのみを処理します。
  4. 1回の処理が終わるごとに、次回の開始位置を保存するためにスクリプトプロパティや一時ファイルに保存します。
  5. すべてのデータを処理完了したら、トリガーを削除するなどの後処理を行います。

この方法では、スクリプトを複数回呼び出す必要があるため、時間トリガーを使って一定間隔で実行させるか、または再帰的にスクリプトを呼び出す実装にします。ただし、再帰呼び出しは実行回数を消費するため、トリガーを使うほうが管理しやすい場合があります。

ジョブ分割(機能単位で分割)

処理内容が複数の独立した機能から構成されている場合、各機能を別々の関数に分け、それぞれを個別のトリガーやカスタムメニューから実行できるようにします。たとえば、「データ取得」「加工」「出力」の3工程をそれぞれ別の関数に分割し、それぞれを逐次実行するか、1日あたりの実行回数を分散させます。

// 分割処理の例(疑似コード)
function processBatch(batchSize) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var totalRows = data.length;
  var startRow = getStartRow(); // プロパティから前回の続きを取得
  var endRow = Math.min(startRow + batchSize, totalRows);
  for (var i = startRow; i < endRow; i++) {
    // 各行の処理
  }
  saveStartRow(endRow);
  if (endRow < totalRows) {
    // まだ処理が残っていればトリガーを設定して次回実行
    ScriptApp.newTrigger('processBatch').timeBased().everyMinutes(5).create();
  } else {
    // 完了したのでトリガー削除
    var triggers = ScriptApp.getProjectTriggers();
    for (var j = 0; j < triggers.length; j++) {
      ScriptApp.deleteTrigger(triggers[j]);
    }
  }
}

注意点として、トリガーを動的に作成する場合は、既存のトリガーを削除しないと無制限にトリガーが増えるため、管理が必要です。また、トリガーの作成にもクォータが消費されます(トリガー数に上限あり)。

失敗パターンと注意点

パターン1: 分割数が多すぎてトリガークォータに引っかかる

分割処理のために大量のトリガーを作成すると、プロジェクトあたりのトリガー数上限(現在は20個)に達する可能性があります。トリガーを使いすぎないよう、1つのトリガーで複数バッチを処理するか、トリガー数を監視する仕組みを入れてください。

パターン2: 再帰呼び出しでスタックオーバーフローや実行時間超過

再帰的にスクリプトを呼び出す方法は、1回の実行時間を短縮できる反面、再帰の深さが増すとスタックエラーや合計実行時間の制限に引っかかることがあります。再帰呼び出しはせずに、時間トリガーで一定間隔をあけて実行するほうが安全です。

パターン3: 分割単位が小さすぎて逆にオーバーヘッドが増加

1回のバッチサイズを極端に小さくすると、スクリプトの起動オーバーヘッドが増え、かえって合計実行時間が長くなることがあります。適切なバッチサイズは、処理内容やデータ量によりますが、数百から数千単位で調整するとよいでしょう。

管理者に伝えるべき情報

もし会社の管理下にあるGoogle Workspaceアカウントでクォータ制限に頻繁に当たる場合、管理者に以下の点を伝えることで、根本的な解決につながる可能性があります。

  • クォータの増加申請: Google Workspaceのエディションによっては、管理者がGoogleに申請して特定のクォータを引き上げてもらうことができます。特にBusiness StandardやEnterpriseエディションでは、上限が高く設定されています。
  • エディションの見直し: 現在のエディションがコンシューマー版やBusiness Starterの場合、Business Standard以上にアップグレードすることで利用可能なクォータが大幅に増加します。
  • スクリプトの監査: 組織内で同じアカウントを使用している場合、他のスクリプトがリソースを消費している可能性があります。管理者に監査を依頼し、不要なスクリプトの停止や最適化を促してください。

よくある質問

Q1: 分割処理をしてもすぐに制限に当たってしまいます。どうすればよいですか?

分割処理のバッチサイズや実行間隔を見直してください。また、他のスクリプトが同じアカウントで動作していないか確認しましょう。それでも改善されない場合は、管理者にエディションのアップグレードやクォータの引き上げを依頼してください。

Q2: トリガーを使わずに分割処理する方法はありますか?

可能です。スクリプト内で「CacheService」や「PropertiesService」を使って処理の続きを保存し、ユーザーが手動で繰り返し実行する仕組みも考えられます。ただし、自動化には不向きです。また、Googleの「シンプルトリガー」(onOpenなど)も利用できますが、実行回数や時間制限は同様に適用されます。

Q3: 分割処理のバッチサイズはどれくらいが適切ですか?

一般的な目安として、1回のスクリプト実行で処理する行数を1,000~5,000行程度に設定すると、実行時間が数分以内に収まることが多いです。ただし、データの複雑さやAPI呼び出しの有無によって調整してください。最初は小さめの値(100行など)から始めて、制限に当たらない範囲で徐々に増やすと安全です。

まとめ

Googleドキュメントのスクリプト実行回数制限に当たった場合、まずは現在のクォータ使用状況を確認し、何の制限に引っかかっているのかを特定することが重要です。その上で、処理を分割する方法としてチャンク分割やジョブ分割を導入することで、制限を回避しながらスクリプトを継続して実行できるようになります。ただし、分割処理だけでは根本的な解決にならないケースもあるため、管理者と協力してエディションの見直しやクォータの増加申請を検討してください。また、定期的に実行ログとトリガー設定を確認し、適切なバッチサイズと実行間隔を保つことで、安定した運用が可能になります。


📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
🔐
会社アカウント・認証トラブル完全解決データベース 職場または学校アカウント、MFA、Authenticator、VPN、権限、会社ポリシーで止まる問題を横断的に確認できます。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

解決 関連記事でさらに詳しく

  • ✅【Microsoft 365】Officeライセンスの設定変更が反映されない時の同期範囲と待ち時間の見方
  • 💡【Googleスプレッドシート】ショートカットキーをカスタマイズする!Chrome拡張での割当変更
  • 💡【Microsoft Authenticator】バックアップ復元を使えない時に先に見るセキュリティ情報と復旧方法
  • ✅【Outlook】共有された予定表の参加者一覧が表示されない時の権限確認
  • 🛠️【Microsoft 365】退職者のサインイン履歴を確認したい時の管理センターで見る項目
  • 🛠️【Intune】端末名が古いPC名のまま管理画面に残る時の確認手順

Googleスプレッドシートの人気記事ランキング

  • 【Googleスプレッドシート】行を一括追加!複数行をまとめて挿入
  • 【Googleスプレッドシート】ショートカットキー一覧!Ctrl+/で表示する効率化の入口
  • 【Googleスプレッドシート】Apps Scriptが動かない・実行されない時のチェックポイント
  • 【Googleスプレッドシート】行・列の入れ替え!ドラッグ&ドロップでの並べ替え
  • 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
  • 【Googleスプレッドシート】公開設定でWebに掲載!誰でも閲覧できるリンクの作り方
  • 【Googleスプレッドシート】行・列の削除!不要な範囲を削除する手順
  • 【Googleスプレッドシート】フィルタ表示で他の人の表示を変えずに絞り込み!共有時の使い分け
  • 【Googleスプレッドシート】共有権限の閲覧者・コメント可・編集者の違い!使い分けの指針
  • 【Googleスプレッドシート】テンプレートギャラリーを使い倒すコツ!業務別の活用例
Office・仕事術 Googleスプレッドシート Googleドキュメント 会社アカウント・認証
Apps Script・自動化 google-docs Googleスプレッドシート 会社アカウント・認証 会社ポリシー・条件付きアクセス
  • 【Googleドキュメント】差し込み後にPDFだけ作成したい時の保存形式指定
  • 【Googleドキュメント】文書IDを間違えずにスクリプトへ指定する確認方法
⚠️
【最新】通信・アプリ障害まとめ 更新中 リアルタイムで発生中の障害を即チェック
🔴 速報・最新トラブル
  • 07.25 Win 【速報 2026年7月】Windows Update KB5121767を配信|一部PCで7月更新が入らない問題を修正
  • 07.24 Teams 【速報 2026年7月24日】Microsoft Teamsが使えない・会議に参加できない障害|Microsoft 365の影響と現状
  • 07.22 Win 【速報 2026年7月】Windows更新後に社内システムへログインできない時のKerberos RC4制限確認
  • 07.21 Win 【速報 2026年7月】WSUS同期が遅い・タイムアウトする不具合|Microsoft公式の状況と会社PCへの影響
  • 07.19 【WordPress】7.0.2で重大な脆弱性を修正|対象バージョンと更新確認
  • 07.18 【2026年7月18日】佐川急便スマートクラブで個人情報漏えい|通知メールの誤表示と確認方法
  • 07.17 【速報 2026年7月17日】GitHub REST APIの障害は復旧|影響と失敗処理の確認点
  • 07.17 【2026年7月16日】クレジットカード決済ができない障害|CARDNETの回復状況と確認手順
  • 07.16 【2026年7月16日】AWSで広範囲の障害|EC2・S3・DynamoDBなどの影響と確認方法
  • 07.16 【2026年7月最新】ニチレイのシステム障害|サイバー攻撃の影響・復旧状況・確認先
Windows・業務ツール 更新・不具合の最新情報 公式発表と速報を時系列で確認 →
🔍 落とし物トラブル解決
🔍
落とし物発見ナビ 3ステップ診断で発見ルートを提示・PNG保存可
📚
落とし物解決DB 電車・バス・空港・海外・ペット網羅
📚 ITトラブル解決DB
💻
Windows解決DB 不具合・設定・エラーを完全解決
🧭
Edge解決DB 表示・パスワード・拡張機能を完全解決
📊
Excel解決DB エラー・不具合の対処法を網羅
📝
Word解決DB 不具合・書式・設定のトラブル解消
✨
Copilot解決DB 使い方・エラー・設定を完全解決
👥
Teams/Outlook解決DB 接続・サインイン・送受信の不具合解消
📽️
PowerPoint解決DB マスター固定・図形結合・動画再生の解消
📑
PDFトラブル解決DB 閲覧・編集・結合・印刷のエラー解消
🏛️
確定申告解決DB e-Tax・マイナンバーカードの不具合解消
📱
Facebook解決DB 乗っ取り・権限譲渡・ログイン障害に対応
📗
Sheets解決DB 関数エラー・Apps Script・共有の解消
📝
Docs解決DB 書式・共有・Apps Script・参考文献の解消
🎥
Zoom解決DB 参加・画面共有・録画・Webinarの解消
✨
生成AI解決DB 基礎・料金・著作権・社内ルールの解消
🍎
iPhone解決DB 起動・Wi-Fi・アプリ・設定の解消
🤖
Android解決DB 設定・アプリ・通信・カスタマイズの解消
🔐
会社アカウント認証DB MFA・サインイン・VPN・権限の不具合解消
🔗
社内ネットワーク・VPN DB接続・共有・RDP・DNS・社内制限を解決
☁
OneDrive・SharePoint DB同期・共有・権限・復元の不具合解消
📄
勤怠・給与・人事 DB打刻・給与明細・人事通知・認証トラブル
🧩
Notion解決DB 共有・権限・DB・AIの不具合解消

ADVERTISEMENT

   🔧 ツール
🛡️
詐欺メール判定 届いたメールを即座に診断
📦
送料最安シミュレーター            郵便・宅急便の最安料金を比較
✂️
テキスト自動整形 全角半角・改行削除を一発で
📝
文字数カウント 自動保存付き・レポート作成
🔒
パスワード生成 強力なパスワードを安全作成
📅
西暦・和暦変換 履歴書の年号・年齢を計算
🧩 診断・チェック
🏆
超解決 Excel検定 実務能力を1級〜3級で判定
📘
超解決 Word検定 文書作成のスキルを格付け
🦆
騙されやすさ診断 あなたは「歩くATM」かも?
Global Edition
WiseChecker
🔐🧠📦

超解決の「海外版」姉妹サイト。
世界標準のパスワード生成や
性格診断・送料計算はこちら。

海外版サイトへ移動 ✈️
  • トップページ
  • 本サイトについて・運営企業情報
  • 著書の紹介
  • プライバシーポリシー

© 超解決.