Google Apps Script(GAS)とは?Googleサービスをコードで自動化できる無料ツール
Google Apps Script(GAS)は、Googleが提供するクラウドベースのスクリプト実行環境です。Googleアカウントがあれば無料で使え、Googleスプレッドシート・Gmail・Googleフォーム・Googleカレンダー・Googleドライブなど、Google Workspaceの各サービスをJavaScriptで自動化・連携させることができます。
GASの最大の特徴は「インストール不要・設定不要でブラウザだけで開発・実行できる」点です。通常のプログラミングではAPI認証やOAuthの設定が必要ですが、GASではGoogleのサービス間連携が標準で組み込まれているため、数行のコードでGmailの送受信・スプレッドシートの読み書き・外部APIの呼び出しが実現できます。JavaScriptをベースにした文法のため、プログラミング入門者でも学習コストが比較的低い点も普及の理由です。
GASでできること・主なユースケース
- スプレッドシートの定期自動処理:毎日9時に前日の売上データを集計して別シートに転記する、月初にレポートシートを新規作成する、特定の条件を満たす行に色付けするといった、手作業で繰り返していたスプレッドシート操作を自動化できます
- Googleフォーム送信時の自動メール返信:問い合わせフォームや申込フォームへの回答があった瞬間に、回答者への自動確認メール・担当者への通知メールを送信できます。フォームの回答内容をメール本文に動的に組み込むことも可能です
- 外部API連携・Slack通知:UrlFetchAppを使って外部の天気APIや社内システムAPIと連携し、取得したデータをスプレッドシートに記録・SlackのWebhookに通知するといった処理が実装できます。「スプレッドシートのデータが更新されたら担当者のSlackにメンション付きで通知する」という社内業務連携も一般的なユースケースです
- Googleカレンダーへの自動登録:スプレッドシートに入力した予定データ(日時・場所・参加者)をGoogleカレンダーに一括登録する、定例会議をカレンダーに自動追加するといった処理が実現できます
- カスタムメニュー・サイドバーの追加:スプレッドシートやドキュメントにカスタムメニューを追加し、特定の処理をワンクリックで実行できるボタンをUI上に実装できます。非エンジニアのメンバーでもスクリプトを実行できる環境を整えるのに有効です
GASの料金と主な制限(2025年時点)
| 制限項目 | Googleアカウント(無料) | Google Workspaceアカウント |
|---|---|---|
| 1回のスクリプト実行時間 | 最大6分 | 最大6分 |
| 1日あたりの合計実行時間 | 90分 | より高い上限 |
| メール送信数/日 | 100件 | 1,500件 |
| URLフェッチ/日 | 20,000リクエスト | 100,000リクエスト |
| スクリプトの保存容量 | 50MB | 50MB |
※制限値はGoogle公式ドキュメント(developers.google.com/apps-script/guides/services/quotas)掲載の参考値です。アカウント種別や利用状況によって変わる場合があります。最新情報は公式サイトでご確認ください。6分の実行時間制限はほとんどの業務自動化スクリプトでは問題になりませんが、大量データの処理では「バッチ分割」で対応します。
GASの基本的な使い方
Step 1:スクリプトエディターを開く
2つの方法でアクセスできます。①スプレッドシートに連携する場合:Googleスプレッドシートを開いて上部メニュー「拡張機能」→「Apps Script」をクリック。②単独のスクリプトを作成する場合:ブラウザでscript.google.comにアクセスして「新しいプロジェクト」をクリック。スクリプトエディターが開き、左側にプロジェクトファイル、中央にコードエディターが表示されます。
Step 2:最初のスクリプトを書いて実行する
スクリプトエディターに以下のコードを入力します。スプレッドシートのA1セルに文字を書き込むシンプルなスクリプトです。
function writeToSheet() {
const sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange('A1').setValue('GAS動作確認 OK');
}コードを入力したら上部の「▶ 実行」ボタンをクリックします(または Ctrl+Enter / Cmd+Enter)。初回実行時はGoogleアカウントへのアクセス許可を求めるダイアログが表示されるので、「許可する」を選択します。実行後にスプレッドシートのA1セルに「GAS動作確認 OK」と表示されれば成功です。
Step 3:トリガーで自動実行を設定する
スクリプトを特定のタイミングで自動実行させるには「トリガー」を設定します。スクリプトエディター左メニューの時計アイコン(トリガー)をクリックし、「トリガーを追加」ボタンから設定します。主なトリガーの種類は以下の通りです。
- 時間ベースのトリガー:毎日・毎時間・毎週など指定した時間に実行。「毎朝9時に前日売上を集計してメール送信」という処理に使います
- フォーム送信トリガー:Googleフォームに回答が送信されたタイミングで実行。自動返信メール・通知メールの送信に使います
- スプレッドシート変更トリガー:シートが編集されたタイミングで実行。特定のセルが変更された際に後続処理を実行する場合に使います
- スプレッドシート起動トリガー:ファイルを開いたタイミングで実行。カスタムメニューの追加などに使います
よく使う主要サービスクラス
- SpreadsheetApp:Googleスプレッドシートの操作全般。
SpreadsheetApp.getActiveSheet()でアクティブシートを取得し、.getRange('A1').getValue()でセル値を読み取り、.setValue('値')でセルに書き込みます。.appendRow(['値1','値2'])で末尾に行を追加する操作もよく使います - GmailApp:Gmailのメール送受信。
GmailApp.sendEmail('宛先','件名','本文')でメールを送信します。HTMLメールを送る場合はオプションに{htmlBody: 'HTMLコード'}を指定します。1日の送信上限(無料アカウント100件)に注意が必要です - UrlFetchApp:外部APIへのHTTPリクエスト。
UrlFetchApp.fetch('URL')でGETリクエストを送り、.getContentText()でレスポンスを文字列として取得します。SlackのIncoming Webhookへの通知やREST APIへのPOSTリクエストにも使います - CalendarApp:Googleカレンダーのイベント操作。
CalendarApp.getDefaultCalendar()でデフォルトカレンダーを取得し、.createEvent('タイトル', 開始日時, 終了日時)でイベントを作成します
「Speedを最優先する」:完璧なシステムを設計する前に、まず60点のGASスクリプトを動かす
Renueの社内ガイドラインには「Speedを最優先する」という考え方があります。「速さこそ最大の価値。遅い100点より速い60点。早く出せば軌道修正の時間が生まれる。スピードは信頼を生む。『完璧にしてから』ではなく『今すぐ』出す。1日で終わる仕事を3日かけない」という内容です。
GASによる業務自動化においても、この「まず60点で動かす」というアプローチが成功の鍵です。「完璧なエラー処理・ログ機能・ドキュメントを整えてから運用する」という姿勢では、スクリプトが完成するまで手作業が続きます。GASで「今すぐ価値を出す」3ステップは以下の通りです。
- 【60点で動かす:まず正常系だけ書く】:最初はエラー処理・例外ケース・ログを省いて「正しいデータが来た場合に正しく動く」コードだけを書きます。「フォームに回答が届いたら担当者にメールを送る」というユースケースであれば、まず1件の想定データで動くスクリプトを10〜20行で書いて実行します。エラーハンドリングは「動かしながら発生したエラーを後から対処」で十分です
- 【早く見せて軌道修正する】:60点のスクリプトをすぐに動かして関係者に共有します。「完璧になってから見せる」ではなく「動いている状態を早く見せる」ことで、「実は担当者への通知はSlackで良い」「件名のフォーマットを変えてほしい」という軌道修正を早期に取り込めます。仕様確認が完了してから実装すると、変更コストが最小で済みます
- 【壊しても直せばいい:テストを積極的に実行する】:GASのスクリプトは実行してみるまで動作を確認できません。「壊すかも」で止まらず積極的にテスト実行します。本番データを操作するスクリプトはログ出力(
Logger.log())で動作確認してから実運用に入り、問題があれば修正して再実行すれば十分です。GASの修正・再デプロイはサーバーへのデプロイ作業なしにエディター上で完結するため、修正コストは低いです
GASとZapier・Make.comの比較
| 比較軸 | Google Apps Script | Zapier | Make.com |
|---|---|---|---|
| コスト | 完全無料 | $19.99/月〜(750タスク) | $9/月〜(10,000オペレーション) |
| Google連携 | ネイティブ統合(最高水準) | API経由 | API経由 |
| 外部アプリ連携 | UrlFetchApp経由(コーディング必要) | 8,000以上のアプリに対応 | 約2,000アプリに対応 |
| 複雑なロジック | 自由度最高(コードで記述) | 線形の自動化向け | 複雑な分岐・ループ対応 |
| プログラミング知識 | 必要(JavaScript基礎) | 不要(ノーコード) | ほぼ不要 |
| 向いている用途 | Googleサービス内の自動化・複雑な処理・コスト削減 | 多アプリ間の簡単な連携 | 中複雑度の自動化・コスト重視 |
よくある質問(FAQ)
Q. プログラミング未経験でもGASは使えますか?
基本的なユースケース(スプレッドシートへの自動書き込み、フォーム送信メールの自動返信)はサンプルコードをコピーして変数を書き換えるだけで動かせます。JavaScriptの完全な理解は不要で、「変数に値を入れる・関数を呼び出す・if文で条件分岐する」という基礎的な概念が分かれば実用的なスクリプトが書けます。ChatGPTやClaudeに「GASで○○するコードを書いて」と指示することで、コーディング支援を受けながら学習を進めることも現実的です。
Q. GASのスクリプトが6分以内に終わらない場合はどうすればよいですか?
大量データを処理する場合は「バッチ処理」に分割します。例えば1,000行のデータを1回で処理するのではなく、1回のトリガーで100行ずつ処理し、処理済みの位置をPropertiesServiceで保存、次のトリガー実行時に続きから再開するパターンが一般的です。また、スプレッドシートの読み書きは1セルずつではなくgetValues()/setValues()で範囲まとめて操作することで実行時間を大幅に短縮できます。
Q. GASはGoogle Workspaceの有料プランがないと使えませんか?
Gmailなど無料のGoogleアカウントがあれば使えます。無料アカウントでは1日のメール送信数が100件・合計実行時間が90分などの制限がありますが、個人や小規模チームの業務自動化には十分です。複数人が同じスクリプトを利用する場合や送信量が多い場合はGoogle Workspaceアカウントの利用を検討します。
GAS・業務自動化・AI活用を相談したい方へ
RenueはGoogle Apps Script・Zapier・Make.comなどを活用した業務自動化・Google Workspaceの効率化・AIエージェント開発・業務プロセス改善の支援実績があります。「繰り返し作業を自動化したい」「GASで社内の業務をどこから自動化すべきか相談したい」という方は、まずお気軽にご相談ください。
無料相談はこちら