GASとは?30秒で理解する基本
GAS(Google Apps Script) は、Googleが無料で提供するJavaScriptベースのスクリプト環境です。スプレッドシート、Gmail、Googleフォームなど、Google Workspaceの各サービスをプログラムで操作・連携できます。
特徴を3行でまとめると、以下のとおりです。
- 無料で使える(Google アカウントがあればOK)
- JavaScriptベースなので、学習コストが低い
- スプレッドシートを開いて「拡張機能 → Apps Script」ですぐに始められる
つまり、エンジニアでなくても「ちょっとした業務の自動化」を今日から始められるツールです。
この記事では、コピペでそのまま使えるテンプレート5選を紹介します。まずはコードを貼って動かしてみてください。
INSTANT ESTIMATE
計算式より、60秒で概算を出しませんか?
システム種別・規模・連携先を選ぶだけで、開発費用・期間・月額運用費の概算をその場で表示します。
すぐ使える自動化テンプレート5選
テンプレート1:スプレッドシートからメール自動送信
顧客リストや社内連絡先をスプレッドシートで管理し、一斉にメールを送る仕組みです。営業フォローやリマインド通知に使えます。
function sendEmails() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('メール送信');
const data = sheet.getDataRange().getValues();
// 1行目はヘッダーなのでスキップ
// 列構成: A=名前, B=メールアドレス, C=件名, D=本文, E=送信済み
for (let i = 1; i < data.length; i++) {
const name = data[i][0];
const email = data[i][1];
const subject = data[i][2];
const body = data[i][3];
const sent = data[i][4];
if (email && sent !== '送信済み') {
GmailApp.sendEmail(email, subject, `${name} 様\n\n${body}`);
sheet.getRange(i + 1, 5).setValue('送信済み');
}
}
}
使い方: シートに「名前・メールアドレス・件名・本文・送信済み」の列を作り、データを入力して実行するだけです。E列に「送信済み」と記録されるため、二重送信を防止できます。
テンプレート2:データ集計の自動化
毎月の売上データを自動で集計し、サマリーシートに書き出します。手作業の集計ミスをなくせます。
function aggregateMonthlySales() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const source = ss.getSheetByName('売上データ');
const summary = ss.getSheetByName('月次サマリー');
const data = source.getDataRange().getValues();
const monthlyTotals = {};
// 列構成: A=日付, B=担当者, C=商品名, D=金額
for (let i = 1; i < data.length; i++) {
const date = new Date(data[i][0]);
const key = `${date.getFullYear()}/${date.getMonth() + 1}`;
const amount = data[i][3];
if (!monthlyTotals[key]) {
monthlyTotals[key] = { count: 0, total: 0 };
}
monthlyTotals[key].count++;
monthlyTotals[key].total += amount;
}
// サマリーシートに書き出し
summary.clear();
summary.getRange(1, 1, 1, 3).setValues([['月', '件数', '合計金額']]);
let row = 2;
for (const [month, values] of Object.entries(monthlyTotals).sort()) {
summary.getRange(row, 1, 1, 3).setValues([[month, values.count, values.total]]);
row++;
}
}
使い方: 「売上データ」シートに日付・担当者・商品名・金額を入力し、「月次サマリー」シートを作成しておきます。実行すると月ごとの件数と合計金額が自動集計されます。
テンプレート3:Googleフォーム回答の自動処理
フォームで受け付けた問い合わせに、自動で受付番号を採番し、確認メールを返信します。
function onFormSubmit(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('フォーム回答');
const lastRow = sheet.getLastRow();
// 受付番号を採番(INQ-0001形式)
const ticketNumber = 'INQ-' + String(lastRow).padStart(4, '0');
sheet.getRange(lastRow, 1).setValue(ticketNumber);
// 回答者にメール送信(B列=メールアドレス, C列=名前と想定)
const email = e.namedValues['メールアドレス'][0];
const name = e.namedValues['お名前'][0];
const subject = `【受付完了】お問い合わせ番号: ${ticketNumber}`;
const body = `${name} 様\n\nお問い合わせを受け付けました。\n受付番号: ${ticketNumber}\n\n内容を確認の上、2営業日以内にご連絡いたします。`;
GmailApp.sendEmail(email, subject, body);
}
使い方: Googleフォームと連携したスプレッドシートで、Apps Script のトリガーを「フォーム送信時」に設定します。回答が届くたびに自動で受付番号が採番され、確認メールが送られます。
テンプレート4:Slack通知連携
スプレッドシートの更新内容をSlackチャンネルに自動通知します。在庫切れアラートや日次報告などに最適です。
function notifySlack() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('在庫管理');
const data = sheet.getDataRange().getValues();
const slackWebhookUrl = 'https://hooks.slack.com/services/YOUR/WEBHOOK/URL';
const alerts = [];
// 列構成: A=商品名, B=現在庫数, C=発注点
for (let i = 1; i < data.length; i++) {
const product = data[i][0];
const stock = data[i][1];
const reorderPoint = data[i][2];
if (stock <= reorderPoint) {
alerts.push(`⚠ ${product}: 残り ${stock}個(発注点: ${reorderPoint}個)`);
}
}
if (alerts.length > 0) {
const message = `【在庫アラート】${alerts.length}件の商品が発注点を下回っています\n\n${alerts.join('\n')}`;
UrlFetchApp.fetch(slackWebhookUrl, {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify({ text: message })
});
}
}
使い方: Slackの Incoming Webhook URL を取得して slackWebhookUrl に設定します。時間主導型トリガーで毎朝9時に実行すれば、在庫切れの早期発見が自動化されます。
テンプレート5:定期レポート自動生成
週次・月次のレポートをスプレッドシートのデータから自動生成し、PDF化してメール送信します。
function generateWeeklyReport() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const reportSheet = ss.getSheetByName('週次レポート');
// データ集計
const salesSheet = ss.getSheetByName('売上データ');
const data = salesSheet.getDataRange().getValues();
const today = new Date();
const weekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);
let weekTotal = 0;
let weekCount = 0;
for (let i = 1; i < data.length; i++) {
const date = new Date(data[i][0]);
if (date >= weekAgo && date <= today) {
weekTotal += data[i][3];
weekCount++;
}
}
// レポートシートに書き込み
reportSheet.getRange('B2').setValue(Utilities.formatDate(weekAgo, 'Asia/Tokyo', 'yyyy/MM/dd'));
reportSheet.getRange('B3').setValue(Utilities.formatDate(today, 'Asia/Tokyo', 'yyyy/MM/dd'));
reportSheet.getRange('B4').setValue(weekCount);
reportSheet.getRange('B5').setValue(weekTotal);
reportSheet.getRange('B6').setValue(weekCount > 0 ? Math.round(weekTotal / weekCount) : 0);
// PDF化してメール送信
const pdfBlob = ss.getAs('application/pdf').setName(`週次レポート_${Utilities.formatDate(today, 'Asia/Tokyo', 'yyyyMMdd')}.pdf`);
GmailApp.sendEmail(
'manager@example.com',
`【週次レポート】${Utilities.formatDate(today, 'Asia/Tokyo', 'yyyy/MM/dd')}`,
'週次レポートを添付いたします。ご確認ください。',
{ attachments: [pdfBlob] }
);
}
使い方: 「週次レポート」シートにレイアウトを作成し、時間主導型トリガーで毎週月曜日に実行する設定にします。集計からPDF化、メール送信まですべて自動で完了します。
GASの限界を知っておく
GASは手軽で便利ですが、業務の中核を担うには以下の制約があります。
| 制約 | 内容 |
|---|---|
| 実行時間の上限 | 1回の実行は最大6分まで。大量データの処理には向かない |
| 同時実行の制限 | 同一スクリプトの同時実行数に上限がある |
| データ量の限界 | スプレッドシートは最大1,000万セル。数万行を超えるとパフォーマンスが低下 |
| 権限管理が困難 | ユーザーごとのアクセス権限を細かく設定できない |
| エラーハンドリング | 障害時の自動リトライやアラート機能が限定的 |
| 外部連携の制限 | API呼び出し回数に日次制限がある(無料アカウントで20,000回/日) |
これらは「ちょっとした自動化」には問題になりませんが、以下のような段階に入ったらGASの枠を超えています。
- データ件数が数万件を超えた
- 複数人が同時に操作するワークフローがある
- 外部システムとのリアルタイム連携が必要
- セキュリティ要件(監査ログ、アクセス制御)が求められる
- スプレッドシートの動作が目に見えて遅くなった
GASでは限界を感じたら → 業務システム開発という選択肢
GASで自動化の効果を実感できたなら、それは大きな一歩です。しかし、上記のような限界に直面した場合、専用の業務システムを開発することで根本的に解決できます。
GASからシステム開発に移行すべきタイミングの目安は以下のとおりです。
1. 運用コストがかえって増えている GASのメンテナンスに毎週数時間かかっている、エラー対応に追われているなら、システム化のほうがトータルコストは下がります。
2. 属人化のリスクが高まっている 「GASを書ける人が1人しかいない」状態は、その人が異動・退職したときに業務が止まるリスクを抱えています。
3. 事業の成長にツールが追いつかない 取引先が増えた、拠点が増えた、データ量が10倍になった。こうした成長フェーズでは、スプレッドシートベースの運用に無理が生じます。
GXOでは、GASで自動化してきた業務フローをヒアリングし、本当にシステム化すべき部分だけを見極めた上で最適な開発プランをご提案しています。「全部作り替える」のではなく、GASで十分な部分はそのまま残し、ボトルネックだけをシステム化するアプローチです。
GASの限界を感じている方へ → 業務システム開発の無料相談はこちら
補助金を活用してシステム化する方法
「システム開発は高い」というイメージがあるかもしれません。しかし、中小企業が業務システムを導入する際には、国の補助金を活用して費用を大幅に抑えることが可能です。
活用できる主な補助金
| 補助金 | 補助率 | 上限額 | 対象 |
|---|---|---|---|
| IT導入補助金 | 1/2〜3/4 | 最大450万円 | ITツール・システムの導入 |
| ものづくり補助金 | 1/2〜2/3 | 最大1,250万円 | 生産性向上のためのシステム開発 |
| 事業再構築補助金 | 1/2〜3/4 | 最大1,500万円 | 新規事業・業態転換に伴うシステム投資 |
たとえば、300万円の業務システム開発であれば、IT導入補助金を活用して実質負担を75万円〜150万円に抑えることも可能です。
補助金活用の流れ
- 現状の業務課題を整理(GASで自動化した範囲と、まだ手作業の範囲を洗い出す)
- システム化の要件定義(何を、どこまでシステム化するかを決める)
- 補助金の申請書作成(採択率を高めるための事業計画を策定する)
- 採択後にシステム開発を開始
- 実績報告・補助金受給
GXOでは、補助金の申請サポートからシステム開発、運用保守まで一貫して対応しています。「GASで始めた自動化を、補助金を使って本格的なシステムに進化させたい」というご相談を多くいただいています。
まとめ
GAS(Google Apps Script)は、業務自動化の第一歩として非常に優れたツールです。本記事で紹介した5つのテンプレートを活用すれば、今日からメール送信、データ集計、フォーム処理、Slack通知、レポート生成を自動化できます。
一方で、GASには6分の実行時間制限やデータ量の壁など、業務の成長とともに直面する限界があります。その限界を超えたタイミングが、専用の業務システムを検討すべきときです。
補助金を活用すれば、開発コストを大幅に抑えてシステム化を実現できます。GASで効果を実感した自動化を、さらにスケールさせたい方は、ぜひ一度ご相談ください。
業務自動化・システム開発のご相談はこちら(無料) → GXOお問い合わせページ
<!-- GXO_QUALITY_REWRITE_20260507_START -->
GXO実務追記: システム開発・DX投資で発注前に確認すべきこと
この記事のテーマは、単なるトレンド紹介ではなく、要件定義、費用、開発体制、ベンダー選定、保守運用を決めるための検討材料です。検索で情報収集している段階でも、発注前に次の観点を整理しておくと、見積もりのブレ、手戻り、ベンダー依存を減らせます。
まず決めるべき3つの論点
| 論点 | 確認する内容 | 未整理のまま進めた場合のリスク |
|---|---|---|
| 目的 | 売上拡大、工数削減、リスク低減、顧客体験改善のどれを優先するか | 成果指標が曖昧になり、PoCや開発が終わっても投資判断できない |
| 範囲 | 対象部署、対象業務、対象データ、対象システムをどこまで含めるか | 見積もりが膨らむ、または重要な連携が後から漏れる |
| 体制 | 自社責任者、現場担当、ベンダー、保守運用者をどう置くか | 要件確認が遅れ、納期遅延や品質低下につながる |
費用・期間・体制の目安
| フェーズ | 期間目安 | 主な成果物 | GXOが見るポイント |
|---|---|---|---|
| 事前診断 | 1〜2週間 | 課題整理、現行確認、投資判断メモ | 目的と範囲が商談前に整理されているか |
| 要件定義 / 設計 | 3〜6週間 | 要件一覧、RFP、概算見積、ロードマップ | 見積比較できる粒度になっているか |
| PoC / MVP | 1〜3ヶ月 | 検証環境、効果測定、リスク評価 | 本番化判断に必要な数値が取れるか |
| 本番導入 | 3〜6ヶ月 | 本番環境、運用設計、教育、改善計画 | 導入後の運用責任と改善サイクルがあるか |
発注前チェックリスト
- 発注前に目的、対象業務、利用者、現行課題を1枚に整理したか
- 必須要件、将来要件、今回はやらない要件を分けたか
- 見積比較で、開発費だけでなく保守費、運用費、追加改修費を見たか
- ベンダー選定で、体制、実績、品質管理、セキュリティ、引継ぎ条件を確認したか
- 検収条件を機能、性能、セキュリティ、ドキュメントで定義したか
- リリース後3ヶ月の改善運用と責任分界を決めたか
参考にすべき一次情報・公的情報
上記の一次情報は、社内稟議やベンダー比較の根拠として使えます。一方で、公開情報だけでは自社の現行システム、業務フロー、データ状態、予算制約までは判断できません。記事で一般論を把握した後は、自社条件に落とした診断が必要です。
GXOに相談するタイミング
次のいずれかに当てはまる場合は、記事を読み進めるだけでなく、早めに相談した方が安全です。
- 見積もり依頼前に、要件やRFPの粒度を整えたい
- 既存ベンダーの提案が妥当か第三者視点で確認したい
- 補助金、AI、セキュリティ、レガシー刷新が絡み、判断軸が複雑になっている
- 社内稟議で費用対効果、リスク、ロードマップを説明する必要がある
- PoCや診断で終わらせず、本番導入と運用改善まで進めたい
<!-- GXO_QUALITY_REWRITE_20260507_END -->【初心者向け】GAS×スプレッドシート自動化ガイド|コピペで使えるコード付きを自社条件で診断したい方へ
GXOが、現状整理、RFP/要件定義、費用対効果、ベンダー比較、導入ロードマップまで実務目線で確認します。記事の一般論を、自社の投資判断に使える形へ落とし込みます。
※ 初回相談では営業資料の説明よりも、現状・課題・判断材料の整理を優先します。
関連記事
- AI導入が現場で使われない原因と対策 -- 自動化ツールを現場に定着させるコツ
- デジタル化・AI導入補助金2026後期ガイド -- システム開発に使える補助金の最新情報
- GXOの導入事例 -- DX・業務改善の支援実績
