はじめに
Google Apps Script(GAS)とCursor AIを組み合わせると、プログラミング初心者でも本格的な自動化システムが案外簡単に作れちゃうんですよね。
今回は、Googleフォームの回答を自動でメール通知するシステムを、実際に手を動かしながら一緒に構築してみましょう!
この方法をマスターすれば、学校の欠席連絡や企業のアンケート回収など、様々な業務効率化に活用できますよ。
GAS + Cursor AI自動化システムの基礎知識
Google Apps Script(GAS)とは:現代の業務効率化の必須ツール
Google Apps Scriptって、実は結構奥が深いツールだったりするんですよね。
簡単に言うと、GoogleのサービスをプログラムでコントロールできるJavaScriptベースの開発環境なんです。
GASの重要性は、企業のDX(デジタルトランスフォーメーション)推進において日々高まってます。
従来なら専門のシステム開発会社に数十万円かけて依頼していた業務システムが、無料で作れちゃうんですから、使わない手はないですよね。
特に注目すべきは、月間5000万回まで無料で実行できるというGoogleの太っ腹な仕様です。
一般的な中小企業なら、有料プランに移行する必要はほとんどないでしょう。
Cursor AIとは:開発を劇的に効率化するAIパートナー
Cursor AIは、2024年に注目を集めているAI搭載のコードエディターですね。
Visual Studio Codeをベースに、GPT-4などの大規模言語モデルを統合した開発環境なんです。
従来のコーディングと比較すると、開発速度が3〜5倍向上するという調査結果も出てたりします。
特にGASのような比較的シンプルなスクリプト開発では、「こんな機能がほしい」とチャットで伝えるだけで、ほぼ完成品のコードが出力されるんですよね。
claspとは:ローカル開発を可能にする連携ツール
claspは「Command Line Apps Script Projects」の略で、GoogleのApps Scriptをローカル環境で開発できるようにするコマンドラインツールです。
ブラウザ上のApps Scriptエディターも便利なんですが、やっぱりローカルエディターの方が使いやすいし、バージョン管理もしやすいんですよね。
特にCursor AIのような高機能エディターと組み合わせると、開発効率が段違いに上がったりします。
システム構成の全体像と連携の仕組み
今回構築するシステムは、以下の4つのコンポーネントが連携して動作します
Googleフォーム → Googleスプレッドシート → Apps Script → Gmail
この流れで、フォーム送信から通知メール配信まで、全て自動で処理されるんです。
レスポンスタイムは通常3〜5秒程度で、リアルタイムに近い通知が実現できます。
自動化システムの種類:用途別の活用パターン
GAS + フォーム連携システムは、用途に応じて以下のような種類に分類できますね
連絡管理系:欠席連絡、イベント参加申込み、問い合わせ受付など
データ収集系:アンケート回答、調査データ、顧客情報の収集など
承認フロー系:経費申請、休暇申請、備品購入申請など
通知配信系:メール配信、Slack通知、LINE通知など
それぞれに特化したテンプレートを用意しておくと、新しいプロジェクトの際にすぐ活用できて便利ですよ。
具体的な構築方法・手順
準備するもの:開発環境の必要なツールとアカウント
まず最初に、以下のものを準備しましょう
必須アイテム
- Googleアカウント(Gmail、Googleドライブが使えるもの)
- パソコン(Windows、Mac、Linux問わず)
- インターネット接続環境
- Node.js(バージョン14.0以上推奨)
推奨アイテム
- Cursor AI(無料版でも十分使えます)
- Gitアカウント(バージョン管理用)
- テスト用のメールアドレス(複数あると便利)
所要時間は初回セットアップで約30分、慣れてくると10分程度で環境構築できちゃいます。
STEP1: 開発環境のセットアップ(claspインストールと初期設定)
ここからが本格的な作業のスタートです!まずは開発環境を整えていきましょう。
Node.jsのインストール Node.js公式サイト(nodejs.org)から、お使いのOSに対応したインストーラーをダウンロードします。
LTS版を選ぶのが安全ですね。インストール後、ターミナルで node –version を実行して、バージョンが表示されればOKです。
claspのグローバルインストール ターミナル(WindowsならコマンドプロンプトやPowerShell)を開いて、以下のコマンドを実行します:
npm install -g @google/clasp
このコマンドで、claspがパソコン全体で使えるようになります。インストールが完了したら、clasp –version で確認してみてください。
Googleアカウントとの認証 次に、claspをGoogleアカウントと連携させます
clasp login
ブラウザが自動で開いて、Googleアカウントの選択画面が表示されます。
使用したいアカウントを選択して、Apps Scriptへのアクセス権限を許可してください。
Apps Script APIの有効化 これ、結構忘れがちなんですが重要な設定です。
Google Apps Script設定ページ(script.google.com/home/usersettings)にアクセスして、「Google Apps Script API」をオンにします。
この設定をしておかないと、後でclaspコマンドが使えなくてハマったりするんですよね。
一度設定すれば、以降は必要ありません。
ここまでで、ローカル開発環境の準備は完了です!うまくいきましたか?
STEP2: Googleフォームとスプレッドシートの作成
次は、データを受け取るフォームと、それを保存するスプレッドシートを作成していきます。
Googleフォームの設計と作成 Googleドライブにアクセスして、「新規」→「その他」→「Googleフォーム」を選択します。今回は学校の欠席連絡を想定したフォームを作ってみましょう。
フォームのタイトルを「【3年1組】欠席・遅刻連絡フォーム」に設定して、以下の質問項目を追加していきます
- 児童氏名(記述式、必須)
- 連絡種別(ラジオボタン、必須):欠席/遅刻/早退
- 理由(プルダウン、必須):体調不良/家庭の都合/その他
- 詳細(段落、任意):具体的な症状や時間など
- 保護者氏名(記述式、必須)
各質問項目の設定で「必須」をオンにするの、結構忘れがちなので注意してくださいね。
実は、このフォーム作成もGASで自動化できたりします。
Cursor AIに「Googleフォーム作成のGASコード」をお願いすると、項目設定まで含めた完全なコードを生成してくれるんですよね。
慣れてきたらそちらも試してみてください。
スプレッドシートとの連携設定 フォームが完成したら、回答データを保存するスプレッドシートと連携させます。フォーム編集画面の「回答」タブを開いて、緑のスプレッドシートアイコンをクリック。
「新しいスプレッドシートを作成」を選択して、ファイル名を「3年1組_出欠連絡簿」などの分かりやすい名前にします。
これで、フォームに回答があるたびに、自動でスプレッドシートに記録される仕組みが完成です!
Apps Scriptプロジェクトの初期化 連携されたスプレッドシートを開いて、メニューバーから「拡張機能」→「Apps Script」をクリックします。新しいタブでApps Scriptエディタが開きますが、この時点では何もコードを書く必要はありません。
重要なのは、ここで「箱」を作ることです。
後でclaspを使ってローカルから操作するための「受け皿」を準備するんですね。
ブラウザのURLからスクリプトIDをメモしておいてください。これが後で重要になってきます。
STEP3: claspによるローカル開発環境の構築
いよいよ、ブラウザ上の「箱」をローカルに持ってくる作業です。
ここからがclasp + Cursor AIの真骨頂ですね!
スクリプトIDの取得とclone実行 先ほどメモしたスクリプトIDを使って、プロジェクトをローカルにクローンします。作業用のフォルダを作成して、そこでターミナルを開きましょう。
mkdir gas-notification-system
cd gas-notification-system
clasp clone [スクリプトID]
スクリプトIDは、Apps ScriptエディタのURLの「/projects/」の後の部分です。例:1BxKp5…
クローンが完了すると、以下のファイルが作成されます
- .clasp.json:プロジェクト設定ファイル
- appsscript.json:Apps Script設定ファイル
- コード.js:メインのスクリプトファイル
ローカル環境でのファイル構成確認 Cursor AIでこのフォルダを開いてみてください。プロジェクト構造が見やすく表示されて、各ファイルの役割が分かりやすくなりますよね。
appsscript.jsonを開くと、実行時間制限やライブラリの設定などが記載されています。
特に変更する必要はありませんが、将来的に外部ライブラリを使う場合などに重要になってきます。
開発環境の動作確認 簡単なテストコードを書いて、ローカルからブラウザへの反映が正常に動作するか確認してみましょう。コード.jsに以下を追加:
javascript
function testFunction() {
console.log("ローカル開発環境のテストです");
}
そして、以下のコマンドでアップロードします
clasp push
ブラウザのApps Scriptエディタを見て、コードが反映されていればOKです!
ここで躓くことがあるんですが、大抵は認証関連の問題だったりします。
エラーが出た場合は、clasp login を再実行してみてくださいね。
STEP4: Cursor AIでの通知システムコード作成
さあ、いよいよメインディッシュです!
Cursor AIの力を借りて、本格的な通知システムを構築していきましょう。
プロンプトエンジニアリングの実践 Cursor AIは、プロンプト(指示)の出し方次第で、コードの品質が大きく変わったりします。以下の要素を含めた詳細なプロンプトを作成してみましょう:
「Googleフォームが送信されたら、以下の要件を満たす通知メールを送信するGoogle Apps ScriptのonFormSubmit関数を作成してください。」
ここから先は、具体的な要件を箇条書きで明確に伝えるのがコツです
メールの基本設定
- 宛先:スクリプトプロパティで管理
- 差出人名:「欠席連絡フォーム」
- 件名:「【連絡種別】児童氏名さん(3年1組)」形式
メール本文の構成(HTML形式)
- 大見出し:「【連絡種別】児童氏名さん」
- 連絡者情報:保護者名(太字)
- 詳細情報:表形式で整理
- アクションボタン:スプレッドシート直リンク
このレベルで詳細に指示すると、Cursor AIは驚くほど正確なコードを生成してくれるんですよね。
生成されたコードの解説と最適化 Cursor AIが生成したコードを見てみると、おそらく以下のような構造になってるはずです:
javascript
function onFormSubmit(e) {
// フォーム回答データの取得
const responses = e.values;
// メール内容の構築
const emailBody = buildEmailBody(responses);
// メール送信実行
sendNotificationEmail(emailBody);
}
ここで素晴らしいのは、Cursor AIが自動的に関数を分割して、保守性の高いコードを書いてくれることです。
プログラミング初心者だと、全部を一つの関数にまとめがちなんですが、AIは最初から適切な設計をしてくれるんですよね。
エラーハンドリングの追加 生成されたコードに、エラーハンドリング機能を追加してもらいましょう。「エラーが発生した場合の処理も追加して」と指示すれば、try-catch文を使った堅牢なコードに進化させてくれます。
これ、実運用では結構重要だったりします。
フォームの項目が変更されたり、メールアドレスが無効だったりした場合にも、システムが止まらないように工夫されてるんです。
セキュリティ設定の実装 メールアドレスなどの重要情報は、コード内にハードコーディングせず、スクリプトプロパティで管理するのがベストプラクティスです。
Cursor AIに「メールアドレスはスクリプトプロパティで管理したい」と伝えれば、PropertiesService.getScriptProperties().getProperty(‘RECIPIENT_EMAIL’) を使った安全な実装に変更してくれますよ。
STEP5: システムの統合とトリガー設定
コードが完成したら、いよいよシステムを統合して自動化の設定を行います。
claspでのコードアップロード ローカルで作成したコードを、Googleのサーバーにアップロードします:
clasp push
このコマンド一つで、ローカルで作成した全てのファイルが同期されるんです。便利ですよね!
アップロード後は、必ずブラウザのApps Scriptエディタで内容を確認してみてください。
構文エラーがあると、この段階でエラーメッセージが表示されます。
スクリプトプロパティの設定 Apps Scriptエディタの左メニューから、歯車アイコンの「プロジェクト設定」をクリック。「スクリプト プロパティ」セクションで、以下を設定します:
- プロパティ:RECIPIENT_EMAIL
- 値:通知先のメールアドレス
この設定により、コードを変更せずにメールアドレスを変更できるようになります。
複数の学級や部署で使い回す際に、とても便利な機能ですよね。
フォーム送信トリガーの設定 左メニューの時計アイコン「トリガー」をクリックして、「トリガーを追加」ボタンを押します。
設定項目は以下の通り:
- 実行する関数を選択:onFormSubmit
- 実行するデプロイを選択:Head
- イベントのソースを選択:スプレッドシートから
- イベントの種類を選択:フォーム送信時
この設定で、フォームに回答があるたびに自動でスクリプトが実行されるようになります。
権限の承認 初回のトリガー設定時は、必ずGoogleアカウントによる承認が必要になります。「詳細」→「(プロジェクト名)に移動」と進んで、メール送信権限を許可してください。
ここで「このアプリは確認されていません」という警告が出ることがありますが、自分で作成したスクリプトなので問題ありません。
「詳細」をクリックして進めばOKです。
これでシステムの構築は完了です!お疲れ様でした。
応用テクニック:さらなる効率化とカスタマイズ
基本システムが完成したら、さらに便利にするためのテクニックを紹介しますね。
効率を上げるコツ:運用を最適化する実践的なアドバイス
複数フォームの一括管理 同じスクリプトで複数のフォームを管理する場合は、フォームIDをスクリプトプロパティで管理すると便利です。学年ごと、部署ごとに異なる通知先を設定できるようになったりします。
テンプレート化による再利用性向上 今回作成したシステムをテンプレート化しておくと、次回からは10分程度で同様のシステムが構築できちゃいます。フォルダ構成やコメント記述を統一しておくのがコツですね。
ログ機能の追加 console.log() を使って、システムの動作状況をログに残すようにしておくと、トラブルシューティングが楽になります。特に「いつ、誰の回答で、どんなメールを送信したか」の記録は重要ですよね。
バックアップの自動化 重要なデータを扱う場合は、スプレッドシートの自動バックアップ機能も追加しておくと安心です。Googleドライブの別フォルダに日次でコピーを保存する、といった感じですね。
レスポンシブなメールテンプレート スマホでも読みやすいHTMLメールテンプレートを作成すると、受信者の利便性が大幅に向上します。CSS media queryを使った実装も、Cursor AIに任せれば簡単に作れたりします。
よくある失敗とその対処法:トラブルシューティングガイド
トリガーが動作しない問題 これ、初心者が一番ハマりやすいポイントかもしれませんね。原因の多くは、以下のいずれかです:
原因1: スプレッドシート連携が切れている 対処法: フォーム編集画面で、スプレッドシート連携を再設定
原因2: 関数名が間違っている
対処法: トリガー設定の「実行する関数」がコード内の関数名と一致しているか確認
原因3: 権限が無効になっている 対処法: トリガーを一旦削除して、再作成する
メール送信エラーの対応 メール送信で最も多いエラーは、送信制限に引っかかることです。GASには1日100通までの制限があるので、大量送信が必要な場合は工夫が必要ですね。
対処法として、送信間隔を調整したり、重要度の高い通知を優先したりする仕組みを追加することをお勧めします。
claspの同期エラー ローカルとリモートのコードが同期されない場合は、以下を試してみてください
- clasp pull でリモートの最新版を取得
- 競合があれば手動で解決
- 再度 clasp push で同期
このワークフローを覚えておくと、複数人での開発時にも役立ちますよ。
フォーム項目変更時の対応 フォームの質問項目を変更した場合、コード側も対応する修正が必要になります。特に配列のインデックス番号が変わるので、注意が必要ですね。
こういう時こそCursor AIが活躍します。「フォームにこの項目を追加したいので、コードも修正して」と指示すれば、適切な修正版を提案してくれるんです。
文字化け・改行の問題 日本語の文字化けや、改行が正しく表示されない問題も時々発生します。HTMLメールを使用している場合は、<br>タグの使用や、文字エンコーディングの設定を確認してみてください。
これらの問題も、具体的な症状をCursor AIに伝えれば、的確な解決策を提示してくれることが多いですよ。
デバッグとテスト手法 本格運用前は、必ずテストデータでの動作確認を行いましょう。Apps Scriptのデバッガー機能を使えば、コードの動作を1行ずつ確認できて便利です。
また、実際の運用データでテストする前に、コピーしたスプレッドシートでテストするのも安全な方法ですね。
まとめ
今回は、GAS + Cursor AIを使ったGoogleフォーム自動通知システムの構築方法を、一緒に学んできました。
プログラミング未経験の方でも、AIの力を借りれば本格的な業務システムが作れちゃうんですよね。
この方法をマスターすれば、学校の連絡業務だけでなく、企業のアンケート収集、イベント管理、顧客サポートなど、様々な場面で活用できるようになります。
特に「手作業で時間がかかっている」「ミスが起きやすい」といった業務があれば、ぜひ自動化に挑戦してみてください。
Cursor AIのようなAIツールは日々進化してるので、今後さらに簡単にシステム開発ができるようになるはずです。
今のうちに基本的な流れを押さえておけば、将来的にもっと高度なシステムが構築できるようになりますよ。
何か困ったことがあったら、まずはCursor AIに相談してみてください。
コメント