← 記事一覧に戻る

Google Apps Script でスプレッドシート業務を自動化する再利用テンプレの設計

毎回の手作業を GAS のテンプレで自動化するときの設計判断を公開。関数分離・CONFIG集約・トリガー選定・エラー通知・clasp+Git管理まで、実物ベースで解説。

Google スプレッドシートで毎週回している集計・通知・整形の手作業を、コードで動くようにしたい。それをやろうとして Google Apps Script (GAS) を触り始めた人が最初にぶつかるのが、「1回動いたけど再利用できない」問題だ。

案件が終わるたびに書き直していると、GAS の資産化ができない。この記事では、再利用しやすい GAS テンプレの設計判断 を、実物ベースでまとめる。

GAS で自動化できることの範囲を決める

まず GAS + スプレッドシートで実装できる典型パターン。

  • 定時集計(毎日 / 毎週 / 毎月)
  • セル変更をトリガーに Slack / Discord へ通知
  • 別シートや CSV からの取込み → 整形 → 書き戻し
  • 条件分岐でメール自動送信
  • 外部 API 呼び出しで最新データを取得

範囲を決めずに「なんでもできる」で書き始めると、依頼のたびにゼロから書くことになる。まず対象範囲を絞ることが、再利用性を上げる第一歩

再利用テンプレの設計判断(5つ)

1. 関数を「1機能1関数」に分ける

やってはいけないのは、main() に処理を全部詰め込む書き方。読み込み・変換・書き込みの3段階に必ず分ける。

function readSourceRange(sheetName, range) { /* 読み込み */ }
function normalizeRows(rows) { /* 正規化 */ }
function writeResult(sheetName, rows) { /* 書き込み */ }
function main() {
  const rows = readSourceRange('Input', 'A2:D');
  const normalized = normalizeRows(rows);
  writeResult('Output', normalized);
}

読み込み・変換・書き込みが分かれていれば、次の案件で「読み込み元シート名」と「正規化ロジック」だけ差し替えて再利用できる。

2. 設定は先頭の CONFIG に集約

シート名・列番号・Webhook URL などをコード内に散らばらせると、変更のたびに全体を探し回ることになる。先頭で1箇所にまとめる。

const CONFIG = {
  sourceSheet: 'Input',
  sourceRange: 'A2:D',
  outputSheet: 'Output',
  webhookUrl: PropertiesService.getScriptProperties().getProperty('WEBHOOK_URL'),
};

通常の設定 はコード内に定数化、秘密情報 (API キー / Webhook URL)PropertiesService で管理。コミット時に秘密情報を git に載せないための基本。

3. トリガーは「手動実行」から始める

時間駆動トリガーで動く GAS は便利だが、いきなり自動化すると失敗時に気づけない。

  • 開発中: 手動実行 で結果を目視確認
  • 動作確認済み: onEdit / onFormSubmit などのイベント駆動に格上げ
  • 定時実行: 「通知が来る前提」で追加、必ずエラー通知とセットで

トリガー設定はスプレッドシート依存で消えやすい。どのトリガーが設定されているかを README に残す のが再利用性を上げる地味だが重要な工夫。

4. エラー通知を最初に組み込む

「動いたつもりが実は失敗していた」を防ぐには、GAS の try/catch でエラー時に Slack か Discord に通知が飛ぶ形にしておく。

function safeRun(fn) {
  try { fn(); }
  catch (e) {
    UrlFetchApp.fetch(CONFIG.webhookUrl, {
      method: 'post',
      contentType: 'application/json',
      payload: JSON.stringify({ text: 'GAS Error: ' + e.message }),
    });
  }
}

main()safeRun(main) で包むだけで、失敗が可視化される。運用に乗せる自動化スクリプトは、この一手間で寿命が伸びる

5. コードは clasp + Git で管理

スプレッドシートに直接書いた GAS は、変更履歴がスクリプトエディタ内にしか残らない。案件が増えるほど「あの時どう書いたか」が失われる。

  • clasp (Google 公式 CLI) でローカルに引き落として git 管理
  • コミットメッセージで 変更理由 を残す
  • 案件ごとにブランチを切り替えて、テンプレを差し替え運用

これで、同じテンプレを複数案件で使い回しても、案件ごとの差分を後から追える。

無料版と有償版の違い

無料版テンプレ(メール登録で即DL):

  • 最小構成の .gs ファイル
  • 使い方 PDF (10行程度)

有償版 (¥980 note販売中):

  • 4種類の実用テンプレ(集計 / 通知 / 整形 / メール送信)
  • テンプレごとの手順書 PDF
  • カスタマイズポイント (どこを差し替えるべきか) の解説

まず無料版で「動く手触り」を確認 → 有償版で「4種の実務パターン」を得る、という段階設計。

「うちの業務の GAS 自動化を頼みたい」方へ

「スプレッドシートで週次で手作業を回しているが、GAS を触ったことがない」方向けに、対応可能業務はこう。

対応:

  • 定時集計 → Slack / Discord / メール通知
  • 別シート・CSV 取込み → 整形 → 書き戻し
  • 条件分岐での自動メール送信
  • 外部 API 呼び出し(天気、レート、為替 等)

対応外:

  • 複雑な OAuth 認可を伴う実装
  • 大規模データ(10万行以上)のバッチ処理
  • SaaS 化(ライセンス管理・課金基盤)

見積目安:

  • シンプル自動化: ¥3〜5万 / 3〜7日
  • 複合フロー(取込 + 整形 + 通知): ¥5〜10万 / 3〜7日

17項目の相談フォーム → 即日見積 → 動くものを納品まで、Zoom不要・テキストのみで完結。売買推奨・投資助言・利益保証は行いません。

同じ設計思想で、あなたの業務の反復作業も動くコードに変えます。

レビュー

まだレビューはありません。読んだ感想を最初に投稿してみてください。

レビューを投稿する
評価 必須

送信後、管理者による承認を経て公開されます。投資助言・売買推奨・誹謗中傷は掲載しません。

技術支援を相談する

TradingView / Python / API / ログまわりの実装は相談フォームから。

相談フォームへ
📥 無料版 4 種 メールだけで受け取る →