GASで自動化する
情報この手順でできるようになること
(参考) ツール紹介で紹介したGAS(Google Apps Script)を、実際に手元で動かすための手順です。ブラウザのスクリプトエディタにコードを貼り付ける方法に加えて、claspというツールを使い、Claude CodeのようなAIエージェントに直接コードを書かせてGoogleへ反映する方法まで進めます。
2つの進め方:ブラウザに貼るか、AIとclaspに任せるか
GASのコードを用意する方法は大きく2つあります。
- ブラウザのスクリプトエディタに貼る:AIが書いたコードをコピーして、
script.google.comの編集画面に貼り付ける方法です。1回きりの単純な自動化ならこれで十分です - AIに指示してclaspで反映する:Claude CodeやCursorのような、パソコンを操作できるAIエージェントを使っている場合の方法です。「〇〇するGASスクリプトを書いて」と頼むだけで、コードの保存からGoogleへの反映まで一気に任せられます。コードがファイルとして手元に残るので、Gitでの変更管理や複数ファイルの一括編集もしやすくなります
普段からClaude Codeなどのエージェントで作業している場合は、clasp経由のほうが結果的に手間が減ります。単発の自動化を1つだけ作るなら、ブラウザに貼るだけで十分です。
claspとは
claspは、Googleが公式に配布している、GASをコマンドラインから操作するためのツールです(Command Line Apps Script Projectsの略)。ローカルで書いたコードをコマンド一つでGoogleのサーバーへアップロードしたり、逆にGAS側の最新コードを手元に取り込んだりできます。私自身も、受信メールの要約を毎朝配信する仕組みをGASで動かしていて、コードを直すときはclaspでclone→編集→pushする形で管理しています。
導入手順
環境構築そのものもAIに任せられます。人間が必ずやるのは、ブラウザでの2箇所の操作だけです。
- Claude CodeのようなAIエージェントに「claspを導入して、GASを操作できるようにして」と頼みます。Node.js(CLIをインストールすると同じく18以上が必要)の確認から、
npm install -g @google/claspの実行まで進めてくれます - Google Apps Script ユーザー設定を開き、「Apps Script API」をオンにします(ここはブラウザでの手動操作が必要です。忘れると次のログインでエラーになります)
- AIに
clasp loginを実行してもらい、開いたブラウザ画面で自分のGoogleアカウントにログインします(アカウント認証なので、ここも人間の操作が必要です)
ここまでで、AIエージェントからGASを操作する準備が整います。
使い方
普段の制作では、この2つだけでほぼ完結します。
① 新しいGASプロジェクトを作る
AIに「GASの新しいプロジェクトを作って」と頼めば、clasp createコマンドで作成してくれます。種類は用途に応じて選びます(スプレッドシート連動ならsheets、単体のスクリプトならstandalone)。
② AIにコードを書かせて反映する
「毎朝7時にGmailの未読を集計して通知するGASスクリプトを書いて」のように頼むだけです。コードを.jsまたは.gsファイルとして保存し、clasp pushでGoogle側へ反映するところまで、AIが一気に進めてくれます。反映したスクリプトをブラウザで確認したいときも、「開いて」と頼めばclasp openで直接開いてくれます。
固有情報はスクリプトプロパティで管理する
APIキーやスプレッドシートのID、Webhook URLのような固有情報は、コードに直接書き込まず「スクリプトプロパティ」というGAS側の保管庫に保存します。コードからはPropertiesService.getScriptProperties().getProperty('キー名')のように呼び出すだけで、値そのものはコードに残りません。clasp経由でコードをGitやAIに共有する場合、特に徹底しておきたい習慣です。
設定はGASエディタの「プロジェクトの設定」画面から手動でもできますが、clasp単体には専用の編集コマンドがありません。Claude CodeのようなAIエージェントに「スクリプトプロパティに◯◯を設定して」と頼めば、設定用のコードを実行して反映してくれます。
⚠️ つまずきやすいポイント
--rootDirを指定し忘れると余計なファイルまでアップロードされる:プロジェクトフォルダに関係ないファイルが混ざっていると、そのまま一緒にpushされてしまいます。GAS用のフォルダは専用に分けておくと安全です- 反映しただけでは自動実行が始まらない:
clasp pushはコードを反映するだけです。「毎朝7時に実行する」のような時間トリガーは、GASエディタの「トリガー」画面から別途設定します(コード内でScriptApp.newTrigger()を使って設定することもできます) - Googleの外との連携は苦手:(参考) ツール紹介でも触れている通り、GASの守備範囲はGoogleサービス内が中心です。外部サービスをまたぐ自動化は、n8nのほうが組みやすい場面もあります