お悩み女子スプレッドシートの毎月の集計を自動化したいけれど、GASで何ができて、どこから始めればいいのか分からない……
GAS(Google Apps Script)は、Googleが提供するプログラミングの仕組みです。ブラウザだけで書いて動かせるので、スプレッドシートの作業を自動化したい人が最初に検討しやすい道具です。
GASでできること、スプレッドシートから最初のコードを動かす手順、学ぶ順番、そして公式が定めている上限を紹介します。GASはこの環境では動かせないため、コードは公式ドキュメントのサンプルの書き方に沿って書いたもので、GASでの実行は確かめていません。JavaScriptとしての文法と処理の流れだけは、Node.jsでスプレッドシートの動きを模して確かめました。上限の数値は公式の割り当てのページで2026年10月に確かめた内容です。
- GASの仕組みと、公式が挙げている「できること」
- スプレッドシートで使う3つの自動化の形
- 最初のコードを動かす4ステップ
- 自動化にたどり着くまでの学習順
- 実行時間やメール数の上限と、承認の注意点
GASの仕組みとできること
GASはブラウザで書いて、Googleのサーバーで動く仕組みです。まず動く場所と書き方を押さえてから、公式が挙げている「できること」を見ます。
動く場所と書き方
公式の概要ページによると、GASは追加のインストールが要りません。ブラウザの中にコードエディタがあり、書いたスクリプトはGoogleのサーバーで動きます。言語は最近のJavaScriptで、let や const といった新しい書き方も使えます。JavaScriptが初めての人向けに、公式は学習コースを案内しています(Google製ではありません)。
スプレッドシートの「拡張機能」から「Apps Script」を選んで作るスクリプトは、そのシートに紐づくコンテナバインドスクリプトになります。公式によると、メニューの追加は紐づいたスクリプトだけができ、「今開いているシート」を取る getActiveSpreadsheet も使えます。単独のスクリプトは script.google.com から作ります。最初はシートに紐づく方を選びます。
公式が挙げるできること
公式の概要ページはGASでできることとして次のものを挙げています。
- Googleドキュメント・スプレッドシート・フォームに、カスタムメニューやダイアログ、サイドバーを足す
- スプレッドシートのカスタム関数とマクロを書く
- Webアプリとして公開する
- Gmail、カレンダー、ドライブ、Googleマップなど、ほかのGoogleサービスとやりとりする
- Google Workspace Marketplace向けのアドオンを作る
スプレッドシートの手作業を減らす目的なら、まずメニュー、カスタム関数、ほかのサービスとの連携を見ます。Webアプリとアドオンは、その先の段階です。
GASでできるスプレッドシートの自動化3つ
スプレッドシートの自動化はいつ動かすかで3つの形に分けると整理できます。
| 形 | 動くきっかけ | 使う仕組み | 詳しい記事 |
|---|---|---|---|
| 手動で動かす | メニューをクリックしたとき | カスタムメニュー(onOpen で作る) | Apps Scriptエディタの使い方 |
| 決まった時刻に動かす | 指定した時刻や間隔 | 時間主導型トリガー | GASトリガーの基本 |
| 操作をきっかけに動かす | シートの編集、ファイルを開く、フォームの送信 | onEdit や onOpen、フォーム送信トリガー | Googleフォーム回答をGASで処理する方法 |
時間主導型トリガーは公式によると最短1分ごとから、月1回までの間隔で設定できます。時刻は少しずれることがあり、毎日9時に設定すると、9時から10時のどこかで動きます。
onEdit や onOpen のような名前で動く「シンプルトリガー」には、制限があります。承認が必要なサービスは使えないので、たとえばメールの送信はできません。動けるのは30秒までで、スクリプトが setValue で書き換えたときには onEdit が動きません。メールを送るなど承認が必要な処理は、手動で作る「インストール型トリガー」を使います。
GASの始め方|スプレッドシートからコードを動かす4ステップ
ここでは、B列の売上を合計してD1に書き込む小さなコードで、開く、書く、実行する、確かめるの流れを一通り進めます。
練習用のシートはA列に店舗名、B列に売上を入れ、1行目を見出しにします。2行目から順に、東京が1200、大阪が3400、名古屋が560です。
最初は元のシートを直接使わず、練習用のシートかコピーしたシートで動かします。このコードはD1に書き込むので、すでに値があると上書きされます。
① Apps Scriptのエディタを開く
スプレッドシートの上のメニューから、「拡張機能」の中にある「Apps Script」を選びます(英語表示では Extensions の Apps Script)。エディタが開き、このシートに紐づくスクリプトができます。
② コードを貼って保存する
エディタに最初から入っているコードを消して、次のコードを貼り、保存します。
function sumSales() {
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
if (lastRow < 2) {
console.log("2行目以降にデータがありません");
return;
}
// B列の2行目から最終行までの売上を読み取る
const values = sheet.getRange(2, 2, lastRow - 1, 1).getValues();
let total = 0;
for (const row of values) {
total += Number(row[0]);
}
sheet.getRange("D1").setValue(total);
console.log(`合計: ${total}`);
}
getLastRow() でデータのある最後の行を調べ、getRange(2, 2, lastRow - 1, 1) で「2行目・2列目から、最終行までの1列」を指定します。getValues() で値をまとめて読み、足し合わせて、setValue でD1に書きます。2行目以降にデータがないときは、何もせずに終わらせています。
③ 実行して承認する
エディタの上で関数名(sumSales)を選び、「実行」を押します(英語表示では Run)。初めて実行すると、承認のダイアログが出ます。公式によると、GASはコードを調べて、使うサービスに必要な権限を自動で決めます。このコードはスプレッドシートを使うので、スプレッドシートへのアクセスを求められます。
Google Workspaceのアカウントでは、管理者の承認が必要な場合があると、公式のクイックスタートに書かれています。会社のアカウントで承認画面が進まないときは、先に管理者に相談します。
④ 結果を確かめてメニューにする
このコードの想定では、D1に5160(1200 + 3400 + 560)が入ります。GASでは動かしていないので、手元で確かめてください。エディタの上の「実行ログ」(Execution log)には、「合計: 5160」と出るはずです。
毎回エディタを開くのは手間なので、シートのメニューから実行できるようにします。次のコードを、同じエディタに追加して保存します。
function onOpen() {
SpreadsheetApp.getUi()
.createMenu("自動化")
.addItem("売上を合計", "sumSales")
.addToUi();
}
onOpen は、ファイルを開いたときに自動で動く決まりの名前です。シートを開き直すと、「自動化」というメニューが増え、「売上を合計」を選ぶと sumSales が動く想定です。公式によると、メニューを作れるのはシートに紐づいたスクリプトだけです。
GASで自動化するまでの学習順6段階
学ぶ順番は、画面に慣れる、シートを読み書きする、自動で動かす、ほかのサービスと連携するの流れにすると、途中で止まりにくくなります。
| 段階 | 学ぶこと | 次に読む記事 |
|---|---|---|
| 1 | エディタの画面と実行ログの見方 | Apps Scriptエディタの使い方 |
| 2 | シートの読み書き(セル・行・範囲) | GASでスプレッドシートを読み書きする基本 |
| 3 | メニューの追加(onOpen) | この記事のステップ④ |
| 4 | トリガーによる定期実行 | GASトリガーの基本 |
| 5 | メール・ドライブ・フォームなどとの連携 | GASでGmail通知を送る方法 |
| 6 | 止まったときの調べ方(実行ログ・上限) | GASのエラーログを見る方法 |
段階1と2は、読むだけのコードで動きを確かめてから、書き込みのあるコードに進みます。書き込みは元に戻せない場合があるため、勝率が高いのは、先に読み取りだけで範囲と件数を確かめる順番です。
GASの上限と注意点|実行時間・メール数・承認の確認
GASには、1回の実行時間や、1日に使える量の上限があります。止まる前に、主な数値を確かめておきます。
主な上限の表
公式の割り当てのページ(2026年10月時点で、最終更新は2026年9月3日)から、自動化でよく関わる項目を選びました。
| 項目 | 個人アカウント(gmail.comなど) | Google Workspace |
|---|---|---|
| スクリプト1回の実行時間 | 6分 | 6分 |
| カスタム関数1回の実行時間 | 30秒 | 30秒 |
| トリガーの合計実行時間 | 90分 / 日 | 6時間 / 日 |
| メール受信者数(MailAppなど) | 100 / 日 | 1,500 / 日 |
| URL取得(外部へのアクセス) | 20,000回 / 日 | 100,000回 / 日 |
| 1スクリプトのトリガー数 | 20 / ユーザー | 20 / ユーザー |
公式は、割り当てがユーザーごとで、最初のリクエストから24時間後にリセットされると説明しています。1回の実行は6分までなので、数万行の処理は、分けて動かす設計が必要になることがあります。分け方はGASの実行時間制限で止まる時の分割実行と再開設計で扱っています。
上の数値は、公式が「予告なく変更されることがある」と書いています。実際に使う前に、公式のページで最新の値を確かめてください。メール数の欄には公式の表で注記の印(*)が付いているため、送る前に MailApp.getRemainingDailyQuota() で残りの数を確かめられます。
止まったときに見る場所
上限を超えると、スクリプトは例外を出して止まります。公式の割り当てのページには、たとえば次のようなメッセージが載っています。
- Service invoked too many times:サービスを1日に呼びすぎた
- Service using too much computer time for one day:1日の実行時間の合計を超えた。トリガーで動くスクリプトは、手動で動かすより1日の上限が低い
- Limit exceeded: Email Attachments Per Message:1通あたりの添付ファイルの数が上限を超えた
時間主導型トリガーのように、画面を見ていない間に動くスクリプトが失敗すると、公式の説明では「Summary of failures for Apps Script」という件名のメールが届きます。原因は、エディタ左側のメニューにある「Executions」(実行履歴の一覧)で、失敗した実行とエラーメッセージを見て調べます。見方はGASのエラーログを見る方法で扱っています。
GASに関するよくある質問
GASについて、よくある疑問をまとめました。
- 個人のGoogleアカウントでもGASは使えますか?
-
使えます。公式の割り当ての表には、個人アカウント(gmail.comなど)向けの数値があり、Google Workspaceより低く設定されています。Workspaceのアカウントでは、管理者の承認が必要な場合があります。
- JavaScriptを知らなくても始められますか?
-
GASはJavaScriptで書くので、変数、関数、配列といった基本は必要です。公式の概要ページも、初めての人向けにJavaScriptの学習コースを案内しています。AIに書かせる場合も、コードの意味を読み取れる程度の知識があると、範囲の間違いに気づけます。
- GASとPythonは、どちらから始めればよいですか?
-
データがスプレッドシートの中で完結するなら、インストール不要で始められるGASが向いています。手元のExcelやCSVを処理するなら、Pythonを検討します。判断の材料は、Excel作業はPythonとGASどっちで自動化する?とノーコード・GAS・Pythonの違いにまとめています。
- 承認の画面が出ました。許可してよいですか?
-
自分で書いた、または中身を確かめたコードだけ許可します。GASはコードを調べて必要な権限を決めるので、「なぜこの権限が要るのか」を、コードの中のサービス名(SpreadsheetApp、GmailAppなど)と照らして確かめます。許可はあとで取り消せます。
GASの最初の実行と上限の確認
GASの基本を整理します。
GASとは:ブラウザで書いてGoogleのサーバーで動く仕組み。JavaScriptで書き、追加のインストールは要らない。
できること:メニューやカスタム関数の追加、ほかのGoogleサービスとの連携、Webアプリの公開など。
始め方:「拡張機能」から「Apps Script」を開き、コードを貼って保存、実行して承認する。最初は練習用のシートで動かす。
学ぶ順番:エディタ、シートの読み書き、メニュー、トリガー、他サービス連携、止まったときの調べ方。
上限:1回の実行は6分まで。トリガーの合計時間やメール数にも1日の上限がある。
まずは練習用のシートで、読み取りだけのコードから動かしてください。上限は予告なく変わることがあるので、本番で使う前に公式のページで最新の値を確かめます。
GASの次の一歩は、次の記事でも扱っています。
- Apps Scriptエディタの使い方|初心者が最初に見る画面と実行方法
- GASでスプレッドシートを読み書きする基本|セル・行・範囲の扱い方
- GASトリガーの基本|毎日・毎週の定期実行を安全に設定する方法
参考資料
Google Apps Script overview | Apps Script
Extend Google Sheets | Apps Script
Custom Menus in Google Workspace | Apps Script
Simple Triggers | Apps Script
Installable Triggers | Apps Script
Quotas for Google Services | Apps Script
Authorization for Google Services | Apps Script
