はじめに
Googleフォームは手軽にアンケートや申し込みフォームを作成できる便利なツールです。しかし、回答が増えてくると、その管理や整理に時間がかかってしまうという課題があります。特に以下のような悩みを抱えている方は多いのではないでしょうか。
- 回答データを手作業で分類するのが大変
- 重要な回答を見逃してしまう
- 回答者への返信作業に時間がかかる
- 特定の回答があった時にすぐに知りたい
ここで力を発揮するのが「Google Apps Script(GAS)」です。GASはGoogleが提供する軽量のプログラミング言語で、Googleのサービス同士を連携させる機能を簡単に実装できます。プログラミング未経験の方でも、少しずつ理解しながら活用できるのが特徴です。
本記事では、GASを使ってGoogleフォームの回答を自動で整理・活用する方法をわかりやすく解説します。前編では基本的な設定から、後編では応用的な使い方までカバーします。この記事を読むことで、フォーム運用の効率を大幅に向上させることができるでしょう。
Googleフォーム×GASでできること
GoogleフォームとGASを組み合わせることで、様々な自動化が可能になります。主な機能を見てみましょう。
1. 回答の自動整理
- カテゴリ別に回答を分類:特定の回答内容に応じて、別シートに自動で振り分け
- 条件付き書式の適用:重要な回答や特定のキーワードを含む回答に色付けやハイライト
- 回答データの加工:集計や分析がしやすいよう、回答データを自動で整形
2. 自動返信機能
- 回答者への自動メール送信:フォーム送信後、回答内容に応じたカスタマイズされた返信を自動送信
- フォローアップ情報の提供:回答内容に基づいて、追加情報や次のステップを案内
3. 通知・連携機能
- 特定回答の通知:重要な回答や緊急性の高い回答があった場合にメールやSlackなどで即時通知
- 他のGoogleサービスとの連携:カレンダーへの予定追加、Googleドキュメントへのデータ転記など
- 外部サービスとの連携:SlackやLINE、Trelloなど他のツールとの連携
4. データ処理・分析
- 自動集計:回答データを集計して統計情報を作成
- グラフ・レポート生成:回答の傾向をグラフ化し、定期的なレポートを自動生成
- データクレンジング:入力ミスの修正や形式の統一を自動化
これらの機能を活用することで、フォーム運用の手間を大幅に削減し、より価値の高い業務に時間を使うことができます。
GASの基本準備
GASを活用するための基本的な準備方法を解説します。
スクリプトエディタの開き方
- フォームの回答が記録されるスプレッドシートを開く
- 上部メニューから「拡張機能」→「Apps Script」をクリック
- スクリプトエディタが新しいタブで開きます
スクリプトの基本構造
GASの基本的なスクリプト構造は以下のようになります。// 関数の定義 function myFunction() { // ここに処理を書く console.log('Hello, GAS!'); }
GASでは、function 関数名() { ... }
の形式で関数を定義します。複数の関数を作成することも可能です。
トリガーの設定方法
トリガーとは、特定のタイミングや条件でスクリプトを実行する仕組みです。フォーム送信時に自動で処理を実行するには:
- スクリプトエディタのサイドバーにある「トリガー」アイコンをクリック
- 「トリガーを追加」ボタンをクリック
- 以下の設定を行う:
- 実行する関数を選択
- イベントのソースを「スプレッドシートから」に設定
- イベントの種類を「フォーム送信時」に設定
- 「保存」をクリック
初心者向けGASの書き方ポイント
1. スプレッドシートへのアクセス方法
// アクティブなスプレッドシートを取得
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// 特定のシートを名前で取得
const sheet = spreadsheet.getSheetByName('回答シート1');
// セルの値を取得
const value = sheet.getRange('B2').getValue();
// セルに値を設定
sheet.getRange('C2').setValue('処理済み');
2. フォーム送信イベントの処理
function onFormSubmit(e) { // eはイベントオブジェクト // e.values には送信された回答が配列で含まれている const responses = e.values; // 例:名前は配列の2番目の要素(インデックスは0から始まる) const name = responses[1]; console.log('フォーム送信がありました: ' + name); }
3. 条件分岐の書き方
function categorizeResponse(response) { if (response.includes('問い合わせ')) { // 問い合わせの場合の処理 return 'inquiry'; } else if (response.includes('申し込み')) { // 申し込みの場合の処理 return 'application'; } else { // その他の場合の処理 return 'other'; } }
4. デバッグ方法
開発中にエラーが発生した場合や、処理の流れを確認したい場合は console.log()
を使用します:function testFunction() { console.log('処理を開始します'); const value = 123; console.log('値: ' + value); // 処理の結果をログに出力 console.log('処理が完了しました'); }
ログは「実行」→「ログを表示」から確認できます。
注意点とベストプラクティス
- 権限の確認:初めてスクリプトを実行する際には、権限の承認が必要です
- 実行制限:GASには1日あたりの実行回数や処理時間に制限があります
- エラー処理:try-catch文を使って、エラーが発生した場合の処理を書いておくと安全です
- コメントの活用:後で見返したときにわかりやすいよう、コードにはコメントを残しましょう
以上がGASの基本的な準備と使い方です。次の章では、これらの知識を活用して、フォーム回答を自動で整理・分類する実践的なスクリプトを解説します。実際のコードと手順を見ながら、自分のフォームに適用する方法を学んでいきましょう。
(次回に続く)