
目次
「除外を1件足したいだけなのに、開発者の手が空くまで待つ」——業務自動化を運用し始めると、こうした小さな待ちが積み重なり、改善そのものが止まることがあります。
原因の多くは、技術の難しさではありません。運用中に変わる値をGAS(Google Apps Script)のコードの中に書いてしまっていることです。
この記事では、実案件(匿名)の「返信忘れ検出」の自動化を例に、設定値をスプレッドシートに外出しする考え方と、除外リストを層に分けて持つ設計を整理します。
この記事の結論
- 運用中に頻繁に変わる値はコードに書かない
- 変わらない判定ロジックだけをコードに残す
- 除外リストは1枚にせず、層に分けて持つ
実案件:返信忘れ検出で、除外リストが運用を止めた
何を作ったか
ある実案件で、返信していないメールを検出して担当者に知らせる「返信忘れ検出」の仕組みをGASで作りました。ただ、届くメールのすべてが返信を必要とするわけではありません。返信不要なものまで通知すると、肝心の通知が埋もれてしまいます。
そこで通知の除外条件を、次の3つの層で持つ設計にしました。
- 個別1件の除外
- 送信元ごとの除外
- パターンによる除外
何が起きたか
当初、この除外リストはスクリプトの中に配列として書いていました。すると、除外を1件足すだけでも開発者がコードを直してデプロイする必要があります。
運用している担当者は「このメールは通知不要」と気づいても、自分では直せません。依頼して、反映を待つしかない。結果として調整が後回しになり、改善が止まりました。
どう変えたか
除外リストをスプレッドシートに移し、スクリプトは起動時にシートを読む形に変えました。担当者はシートに行を足すだけで除外を調整できるようになり、ここから運用が回り始めました。
除外リストが運用を止める原因
コードに設定値を書くこと自体は、作る段階では自然な選択です。値は少なく、開発者がすぐ直せるからです。問題は運用に入ってからで、止まる原因は次の点に集約されます。
- 変更の窓口が開発者だけになる
- 1件の調整にも、修正・確認・デプロイの手順が発生する
- 依頼の手間が面倒で、気づいた改善が後回しになる
除外リストのように「使うほど増える」値ほど、この構造の影響を強く受けます。現場で一番よく分かっている人が、一番手を出せない状態になるのです。
GASの設定値をスプレッドシートで管理する方法
考え方はシンプルで、値はシート、判定はコードに分けます。
シートを設計するときは、次の点を押さえておくと運用が安定します。
- 見出し行を固定し、どの列に何を書くかを明確にする
- 層(個別・送信元・パターン)を列かシートで区別する
- 追加した理由を書くメモ列を設ける
- 空行や前後の空白があっても止まらない読み込み方にする
担当者から見れば「表に1行書くだけ」、コードから見れば「毎回最新のリストを読むだけ」。この分担にすることで、双方の手間が減ります。
コードに書く値・シートに出す値の選び方
線引きの軸は1つで、運用中にどれくらい変わるかです。
| 種類 | 置き場所 | 理由 |
|---|---|---|
| 除外リストなど、運用で増減する値 | スプレッドシート | 担当者が自分で調整できる |
| 現場の判断で見直したい条件 | スプレッドシート | 開発者を待たずに試せる |
| 除外判定・通知の処理手順 | コード | 頻繁には変わらない |
| 読み込みや判定の順序 | コード | 変えると動作全体に影響する |
迷ったら「この値を変えたいのは誰か」を考えます。現場の担当者なら、シートに出す候補です。
除外を3層に分けて、効き方を変える
もう1つの判断軸が、除外を1枚のリストで持たないことです。除外は種類によって、効く範囲の広さがまったく違います。
| 層 | 効く範囲 | 使いどころ |
|---|---|---|
| 個別1件 | そのメールだけ | 一度きりの例外 |
| 送信元ごと | その送信元すべて | 返信不要な相手が決まっている |
| パターン | 条件に合うものすべて | 同じ形のメールがくり返し届く |
1枚のリストに混ぜると、どの除外がどこまで効いているか見えにくくなります。広く効く除外を気軽に足した結果、必要な通知まで消えるおそれもあります。
層に分けておけば、まず狭い「個別1件」で対応し、くり返すなら「送信元」や「パターン」に広げる、という順番で慎重に調整できます。効き方の違いが構造として見えることが、運用する人の安心にもつながります。
まとめ
- 除外リストをコードに書くと、1件の変更にも開発者の修正とデプロイが必要になる
- 運用中に変わる値はスプレッドシートに出し、GASは起動時にシートを読む
- 線引きは「頻繁に変わる値はシート、変わらないロジックはコード」
- 除外は1枚にまとめず、個別1件・送信元・パターンの層で効き方を分ける
よくある質問
Q. GASの設定値はスクリプトに書くのとスプレッドシートに置くのと、どちらがよいですか? 運用中に変わる値はスプレッドシートに置くのが向いています。除外リストなど担当者が調整したい値をシートに出せば、コード修正やデプロイなしで変更できます。変わらない判定ロジックはコードに残すのが基本です。
Q. GASで除外リストを管理するとき、なぜ層に分けるのですか? 除外が効く範囲の広さがそれぞれ違うからです。個別1件・送信元ごと・パターンに分けておくと、どの除外がどこまで効くかが見えるようになり、広すぎる除外で必要な通知まで消えてしまう事故を防ぎやすくなります。
Q. スプレッドシートで設定を管理すると、誤った編集で自動化が止まりませんか? 可能性はあるため、見出し行を固定し、入力欄と説明を分けておきます。空行や余計な空白があっても動く読み込み方にし、追加理由を書く列を設けると、後から見直すときにも迷わず安全に運用できます。
RENOYでは、GASによる業務自動化を「作って終わり」にせず、現場の担当者が自分で調整しながら運用を回せる設計まで含めて支援しています。「作った自動化の調整が、いつも開発者待ちになっている」という段階のご相談も歓迎です。まずはお気軽に無料個別相談(オンライン・60分)をご利用ください。サービス内容をまとめた資料は資料請求からご覧いただけます。
