前回の振り返り

【第3回】ではGitを紹介した。今回は影武者システムの原点、Google Apps Script(GAS)の話。

Google Apps Scriptとは ― 超ざっくり説明

GAS = Googleが提供する無料のプログラミング環境。

Googleスプレッドシート、Gmail、Googleドライブなど、Googleのサービスをプログラムで操作できる。しかもブラウザだけで書いて動かせる。インストール不要。

無料
Googleアカウントだけで使える
ブラウザ完結
インストール不要
Google連携
スプシ・メール・ドライブ

影武者システムは、最初はGASだけで作っていた。スプレッドシートに授業データを入れて、GASで自動処理して、PDFを生成して、メールで送る。これが全部Googleの中だけで完結する。

なぜ必要か ― 未経験者にとって最高の入口

プログラミング未経験者がいきなり「サーバーを立てて」「データベースを用意して」と言われても無理だ。

GASなら:

つまり、面倒なインフラを全部Googleに丸投げできる。

👨
サーバーとかデータベースとか意味がわからない
🟠
GASならそんな言葉を知らなくても動くものが作れます。全部Googleがやってくれるので。

claspとは ― GASをPCから管理するツール

GASはブラウザのスクリプトエディタで書けるが、これだと不便なことがある。

そこで**clasp(Command Line Apps Script Projects)**の出番。claspを使うと、GASのコードをPC上のファイルとして管理できる。

Before(ブラウザのみ)

ブラウザのスクリプトエディタでポチポチ編集。ファイルが増えると迷子。履歴管理なし。Claude Codeが触れない。

After(clasp導入後)

PCのフォルダにGASのコードが並ぶ。Gitで履歴管理。Claude Codeが直接編集してclasp pushで反映。

インストール方法

claspはnpmで入れる(Node.jsが必要。第2回参照)。

npm install -g @google/clasp

初回はGoogleアカウントでログインする:

clasp login
# ブラウザが開くので、Googleアカウントで許可する

自分の使い方 ― push と pull の2コマンド

claspで日常的に使うのは2つだけ。

# PCのコードをGASに反映する
clasp push

# GAS側の変更をPCに取り込む
clasp pull

自分の開発フローはこう:

  1. Claude Codeに「この機能を追加して」と指示
  2. Claude CodeがPC上のGASファイルを編集
  3. clasp push でGASに反映
  4. GAS側でテスト実行
clasp push の注意点
clasp push はPC上のコードでGAS側を上書きする。ブラウザのスクリプトエディタで直接編集した内容がある場合、先に clasp pull でPCに取り込んでおかないと消える。自分は何度かやらかした。

影武者システムではGASプロジェクトを3つ運用している。購入者ごとにセットアップ用のGASが作られる仕組みで、claspなしでは到底管理できなかった。

実際にGASで何を動かしているか

「無料のプログラミング環境」と言っても、実際どこまでのことができるのか。自分がGASで動かしているものを全部見せる。

GASで動かしている全プロダクト
プロジェクト名 何をしているか
影武者コア 家庭教師の勤怠記録・請求書PDF生成・保護者メール通知
影武者サーバー 購入者のGASコードをリモート更新する仕組み
影武者セットアップ 購入者のGoogleアカウントに自動で環境構築
クロードメール Gmailを監視→AIが自動返信。Drive保存・ファイル共有も
クロードDrive Google Driveへのファイルアップロード・自動配信
週間模試 中学5教科の模擬試験を自動生成→受験→採点
個人会計 Zaim API連携の複式簿記・青色申告決算書の自動生成

7つのGASプロジェクトが同時に稼働している。 しかも全部無料。

特に「クロードメール」は面白い仕組みで、Gmailに [Claude] というプレフィックス付きのメールが届くと、GASがそれを検知して、Claude Code CLIに処理を渡す。AIがメールを読んで返信を作成し、GAS経由でGmailから送信する。AIのメール窓口をGASで作っているわけだ。

「個人会計」は、家計簿アプリZaimのAPIからデータを自動取得して、スプレッドシート上で複式簿記の仕訳を自動生成する。確定申告の青色申告決算書まで自動で作れる。freee不要。

7
稼働中のGASプロジェクト数
¥0
GASの利用料
2アカウント
claspの切り替え運用

clasp運用のリアル ― 複数アカウントの罠

1つだけ、実運用で引っかかるポイントがある。複数のGoogleアカウントでclaspを使い分ける場面だ。

自分は事業用と個人用の2つのGoogleアカウントでGASを運用している。claspのログイン情報は ~/.clasprc.json というファイルに保存されるのだが、同時に1アカウントしかログインできない。

解決策はシンプルで、アカウントごとにバックアップファイルを作って、切り替える時にコピーする。

# 事業用アカウントの作業をする時
cp ~/.clasprc_business_backup.json ~/.clasprc.json

# 個人用アカウントの作業をする時
cp ~/.clasprc_personal_backup.json ~/.clasprc.json

地味だけど、これを知らないと「clasp pushしたのに別のアカウントに反映されてた」という事故が起きる。実際に何度かやらかした。

⚠️ clasp push 事故防止チェック

clasp pushする前に必ず確認:

  1. 今どのアカウントでログインしてるか~/.clasprc.json の中身)
  2. 対象プロジェクトのScript IDが合っているか.clasp.json を確認)
  3. clasp pull で最新を取り込んだか(GAS側の変更を上書きしないように)

次回予告

GASは素晴らしい入口だが、使い込むと限界が見えてくる。次回は、その限界を突破するために導入したCloudflare Workerswranglerを紹介する。

連載「コーディング未経験者の開発環境」
第1回:Claude Code
第2回:Node.js & npm
第3回:Git
第4回:Google Apps Script & clasp
第5回:Cloudflare Workers & wrangler
第6回:Stripe CLI
第7回:Python & 便利ライブラリ
第8回:まとめ ― 全体像と選び方

家庭教師の勤怠管理、まだ手作業でやってませんか?

影武者システムを見てみる