SkillStack Lab運営者のスタックです。
Googleスプレッドシートで毎日同じ集計や転記をしていて、「この作業を自動化できないかな」と感じていませんか。
そんなときに役立つのが、GoogleのApps Script(GAS:Google Apps Script)です。
GASを使えば、スプレッドシートのデータ整理だけでなく、Googleフォームへの回答をきっかけに処理を実行したり、決まった時刻に集計したり、条件に合う相手へメールを送ったりできます。
しかも、スプレッドシートから「拡張機能」→「Apps Script」と進めばブラウザ上で開発を始められるため、一般的なプログラミング環境のように専用エディタや実行用サーバーを自分で用意する必要はありません。
一方で、GASには実行時間やメール送信数などの制限があり、作った本人しか直せない状態にすると業務の属人化につながります。
この記事では、GASでスプレッドシートを自動化する基本から、トリガーの設定、6分の実行時間制限、企業で安全に運用するためのポイントまで順番に解説します。
この記事で分かること
GASでスプレッドシートを自動化してできること、初心者向けの始め方、トリガーの種類、6分制限などのクォータ、会社で属人化させない運用方法が分かります。
GASでスプレッドシートを自動化すると何ができる?
GASは、Google Workspaceの各サービスをJavaScriptベースのコードから操作できる仕組みです。
スプレッドシートでは、セルの読み書きだけでなく、Googleフォーム、Gmail、Googleドライブ、Googleカレンダーなどと組み合わせた自動化にも利用できます。
| 業務 | GASでできることの例 |
|---|---|
| データ集計 | 複数シートのデータを読み込み、集計用シートへまとめる |
| データ転記 | 条件に合う行だけ別シートへ転記する |
| フォーム処理 | Googleフォームへの回答後に確認メールや通知を送る |
| 期限管理 | 期限が近い行を抽出し、担当者へメールを送る |
| 定期レポート | 決まった時間に集計処理を実行する |
| ファイル操作 | Googleドライブ内のファイルやフォルダを整理する |

ブラウザだけで開発を始められる
GASの始め方はシンプルです。
- 自動化したいGoogleスプレッドシートを開く
- 「拡張機能」をクリックする
- 「Apps Script」を選択する
- 表示されたエディタへコードを書く
- 保存して実行する
現在のGoogle公式ドキュメントでも、スプレッドシートに紐づくスクリプトは「拡張機能」→「Apps Script」から作成する方法が案内されています。
最新の操作方法は、Google公式のApps Script・Google Sheetsガイドでも確認できます。
会社のGoogle Workspaceでは管理者設定も確認
個人で試せるからといって、会社の顧客情報や人事情報を自由にスクリプトから扱ってよいとは限りません。
業務利用では、自社のGoogle Workspaceの利用ルールやアクセス権限、外部APIへのデータ送信可否を確認してから進めましょう。
GASでスプレッドシートを自動化する基本手順
まずは小さな転記処理から始める
初めてGASを使うなら、いきなりメール送信や外部APIとの連携を作る必要はありません。
まずは「入力シートのデータを集計シートへコピーする」といった、結果を目で確認できる処理から始めると仕組みを理解しやすくなります。
例えば、次のコードは「入力」シートのA~C列を読み込み、「集計」シートへまとめて書き込むシンプルな例です。
function copyData() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const source = ss.getSheetByName('入力');
const target = ss.getSheetByName('集計');
const lastRow = source.getLastRow();
if (lastRow < 2) return;
const values = source.getRange(2, 1, lastRow - 1, 3).getValues();
target.getRange(2, 1, values.length, values[0].length)
.setValues(values);
}
重要なのは、1セルずつ読み書きするのではなく、必要な範囲をまとめて読み込み、配列で処理してまとめて書き戻すことです。
GoogleもApps Scriptの高速化方法として、スプレッドシートへの読み取りと書き込み回数を減らし、バッチ処理する方法を推奨しています。
大量データを扱うようになっても、この考え方が処理時間を抑える基本になります。
初回実行時はGoogleへのアクセス許可が必要
GASからスプレッドシート、Gmail、Googleドライブなどのユーザーデータへアクセスする処理では、初回実行時などにGoogleアカウントから権限を許可する必要があります。
どの権限を要求するかはコード内で利用しているサービスなどから判定されます。
メール送信やドライブへのアクセスを追加すると、新しい権限の承認を求められる場合もあります。
企業で利用する場合は、「動けばよい」ではなくそのスクリプトがどのデータへアクセスする権限を持つのかも確認してください。
GASのトリガーでスプレッドシートを自動実行する
コードを作っただけでは、基本的には人が実行する必要があります。
そこで利用するのがトリガーです。
トリガーを設定すると、特定の操作や時間をきっかけにスクリプトを自動で実行できます。

よく使うトリガーの種類
| トリガー | 利用例 |
|---|---|
| 編集時 | スプレッドシートの値が編集されたときに処理する |
| 変更時 | シート追加などスプレッドシート構造が変わったときに処理する |
| フォーム送信時 | Googleフォームへの回答を受信した後に処理する |
| 時間主導 | 一定時間ごと、毎日、毎週などのタイミングで処理する |
インストール型トリガーはApps Scriptエディタ左側の「トリガー」から追加できます。
「毎朝集計する」「毎週月曜日にレポートを作成する」など、人がPCを開いていない時間にも処理を動かせるのが大きなメリットです。
「毎朝9時」は9時ちょうどとは限らない
時間主導トリガーを使うときに知っておきたいのが、実行時刻には一定の幅があることです。
Google公式では、例えば9時台の定期実行を設定した場合、9時から10時の間で時刻が選ばれ、その後はおおむね同じタイミングで実行される仕組みが案内されています。
そのため、「毎日9:00:00ちょうどに外部システムへデータを送らなければならない」といった厳密な時刻制御が必要な用途では、GASの時間主導トリガーだけで要件を満たせるか確認が必要です。
トリガーの現在の仕様は、Google公式のインストール型トリガーガイドで確認できます。
GASの6分制限と2026年現在の主なクォータ
GASを実務で使うなら、コードの書き方と同じくらい重要なのがクォータ(利用上限)です。
2026年8月時点のGoogle公式情報では、主な制限は次のようになっています。
| 項目 | 個人向けアカウント | Google Workspace |
|---|---|---|
| スクリプトの実行時間 | 6分/1回 | 6分/1回 |
| カスタム関数の実行時間 | 30秒/1回 | 30秒/1回 |
| トリガー合計実行時間 | 90分/日 | 6時間/日 |
| メール受信者数 | 100人/日 | 1,500人/日 |
| トリガー数 | 20/ユーザー/スクリプト | 20/ユーザー/スクリプト |
※クォータはGoogleによって変更される可能性があります。最新値はApps Script公式のクォータ一覧を確認してください。
クォータは必ず午前0時にリセットされるわけではありません
Google公式では、日次クォータは最初のリクエストから24時間後にリセットされると案内されています。
「月曜日に100通送ったから、火曜日の0時になればまた100通送れる」といった前提では設計しない方が安全です。
6分を超えると処理は途中で終了する
通常のApps Scriptでは、1回の実行時間は6分までです。
6分を超えると実行時間超過の例外が発生し、処理が終了します。
ここで注意したいのは、必ずしも「データが壊れる」というわけではないことです。
ただし、上から順番に1行ずつ書き込む処理の場合、途中まで更新されて、その後の処理だけ終わっていない状態になる可能性があります。
そのため、重要な処理では「どこまで完了したか」を記録したり、同じ処理を再実行しても二重登録にならないように設計したりすることが大切です。
GASが遅い・6分を超えるときの改善方法
セルを1つずつ読み書きしない
大量データで処理が遅くなる原因の一つが、スプレッドシートへのアクセスをループ内で何度も繰り返すコードです。
例えば1万セルを処理するときに、1セル読む→1セル書く→次のセルを読む、と繰り返すとサービスへのアクセス回数が増えます。
基本は次の流れです。
- 必要な範囲をgetValues()でまとめて取得する
- JavaScriptの配列上で計算・加工する
- setValues()でまとめて書き戻す
このバッチ処理はGoogleもApps Scriptのベストプラクティスとして案内しています。
長い処理は複数回に分割する
処理を効率化しても6分以内に終わらない場合は、無理に1回ですべて処理するのではなく、複数回へ分割します。
例えば、最後に処理した行番号をProperties Serviceなどへ保存し、次回の実行ではその続きから処理する方法があります。
Google公式のベストプラクティスでも、大きな処理を分割し、必要に応じて時間主導トリガーで続きを実行する方法が案内されています。
データ量そのものが大きいなら保存先を見直す
GASの高速化だけで解決しようとしないことも重要です。
大量のデータを長期間蓄積したり、多数のユーザーから高頻度で書き込みが発生したりする場合、GoogleもCloud SQLやBigQueryなどのデータ基盤を検討するよう案内しています。
「GASが悪い」のではなく、スプレッドシートをデータベース代わりに使い続ける設計そのものが限界に近づいていないかを確認しましょう。
企業でGASを運用するときに重要な属人化対策
実務では、6分制限以上に注意したいポイントがあります。
それが「誰のアカウントで動いているのか」です。
インストール型トリガーは作成者の権限で動く
Google公式によると、インストール型トリガーは、そのトリガーを作成したユーザーのアカウント権限で実行されます。
例えばAさんが「毎朝メールを送信する」というトリガーを作った場合、別の社員がスプレッドシートを操作していても、トリガー自体はAさんの権限で実行されます。
この仕組みを理解せず、個人アカウントに重要な自動化を依存させるのは避けたいところです。

最低限残しておきたい運用情報
- スクリプトの目的
- 対象となるスプレッドシート
- 使用しているトリガー
- トリガーを作成したアカウント
- 利用しているGoogleサービス・外部API
- エラーが起きた場合の確認場所
- 担当者変更時の引き継ぎ手順
Googleは複数人でApps Scriptを開発・保守する場合、共有ドライブの利用もベストプラクティスとして案内しています。
ただし、ファイルを共有ドライブに置いたからといって、作成済みのインストール型トリガーまで自動的に別の担当者へ引き継がれるわけではありません。
退職・異動時にはトリガーも含めて確認する運用にしましょう。
自動実行の失敗を確認できるようにする
自動化は「誰も見なくてよい仕組み」ではありません。
インストール型トリガーでエラーが発生すると、Googleから作成者へ失敗通知メールが送られるほか、Apps Scriptの「実行数」画面から成功・失敗した履歴を確認できます。
重要な業務ほど、次のような監視方法を決めておきましょう。
- 実行履歴を定期的に確認する
- エラー通知メールを見落とさない
- 処理件数や最終実行日時をシートへ記録する
- 失敗時に再実行できる手順を用意する
GASと専用SaaSはどこで使い分ける?
GASには制限がありますが、だからといって企業で使ってはいけないわけではありません。
重要なのは、業務の重要度と処理量に合わせて使い分けることです。
| 業務の状況 | 選択肢 |
|---|---|
| 部署内の簡単な集計・通知 | GASを使いやすい |
| Googleフォームからの小規模な自動処理 | GASを使いやすい |
| 毎日数百件程度の軽いデータ加工 | 処理時間・クォータを確認してGASを検討 |
| 大量データを継続的に処理する | BigQueryやデータベースなども検討 |
| 給与・請求・勤怠など停止時の影響が大きい業務 | 専用SaaSや十分に管理されたシステムも比較 |
| 厳密な監査・権限制御・SLAが必要 | 要件を満たす業務システムを検討 |

GASを使い続けるために複雑な回避処理を何重にも追加し始めたら、別の仕組みへ移行するタイミングかもしれません。
バックオフィス業務そのものを専用サービスへ移した方がよいケースについては、バックオフィス向け脱Excelツールの比較記事で詳しく解説しています。
生成AIでGASのコードを作るときの注意点
現在はChatGPTやGeminiなどへ「このスプレッドシートを自動化するGASを書いて」と依頼すれば、プログラミング初心者でもコードを作りやすくなりました。
これは非常に便利ですが、生成されたコードをそのまま本番環境へ貼り付けるのはおすすめしません。
最低限ここだけは確認する
- どのシートや範囲を書き換えるコードなのか
- GmailやGoogleドライブへアクセスしていないか
- 外部URLへデータを送信していないか
- エラーになったとき途中まで処理されないか
- 同じ処理を2回実行しても問題ないか
生成AIを「コードを書いてくれる人」として使うだけでなく、「このコードが何をしているのか1行ずつ説明して」「想定されるエラーを挙げて」と確認する使い方がおすすめです。
GASのスプレッドシート自動化に関するよくある質問
GASは無料で使えますか?
Apps Script自体を始めるために専用サーバーを契約する必要はありません。
ただし、個人向けGoogleアカウントとGoogle Workspaceでは利用できるクォータが異なり、会社ではGoogle Workspace自体の契約や管理者ポリシーも関係します。
GASはパソコンを閉じても動きますか?
時間主導などのトリガーを設定していれば、利用者のPCを起動していなくてもGoogle側でスクリプトを実行できます。
ただし、トリガーやクォータ、アクセス権限などが原因で失敗することはあるため、完全に監視不要になるわけではありません。
GASの実行時間は本当に6分ですか?
2026年8月時点のGoogle公式クォータでは、通常のスクリプト実行時間は個人向け・Google Workspaceともに1回6分です。
一方、スプレッドシートのセルから呼び出すカスタム関数には1回30秒という別の制限があります。
大量データを扱うと必ず6分を超えますか?
データ量だけで決まるわけではありません。
セルを1件ずつ読み書きするコードは遅くなりやすいため、まずgetValues()とsetValues()を使った一括処理へ改善しましょう。
それでも収まらない規模なら、処理分割やデータベースへの移行を検討します。
担当者が退職するとGASは止まりますか?
すべてのGASが即座に止まると一概には言えませんが、インストール型トリガーは作成者のアカウントで実行されるため、アカウント停止などの影響を受ける可能性があります。
業務利用では、コードだけでなくトリガーの作成者まで含めて引き継ぐことが重要です。
GASによるスプレッドシート自動化のまとめ

GASは、Googleスプレッドシートを使った定型業務を自動化するうえで非常に便利な選択肢です。
- ブラウザからすぐApps Scriptを始められる
- スプレッドシートの集計・転記を自動化できる
- フォーム送信や時間をきっかけに自動実行できる
- GmailやGoogleドライブなどと連携できる
- 1回6分などのクォータがある
- トリガーは作成者のアカウントで動くため引き継ぎも重要
- 大量データではバッチ処理や別のデータ基盤も検討する
最初から大規模な業務システムを作ろうとせず、まずは「毎朝の集計」「定型的な転記」「フォーム送信後の通知」など、失敗しても業務への影響が小さい処理から始めるのがおすすめです。
GASの価値は、すべてを自作することではなく、手作業を減らせる場所へ適切に使うことにあります。
コードをコピペするだけではなく、配列・条件分岐・繰り返し・エラー処理などの基礎を理解しておくと、後から業務が変わったときにも自分で修正しやすくなります。
\ GAS・スプレッドシート自動化を体系的に学ぶ /
