【GAS入門】Googleフォームを自動で作成・返信する方法

Googleフォームでアンケート作りたいんだけど、GASで自動化できるかな?
猫男
猫男
catman
catman
できるとも!GASを使えば、フォーム作成も自動返信も思いのままだ!

GASでGoogleフォームを自動作成する方法

まずは、GoogleフォームそのものをGASで作るコードから!

まだフォーム作成前なので、スタンドアロン型のスクリプトで書きましょう。

 
function createGoogleForm() {
  const form = FormApp.create('アンケートフォーム');

  form.addTextItem().setTitle('メールアドレス');

  form.addTextItem().setTitle('あなたの名前を教えてください');

  const item = form.addMultipleChoiceItem();
  item.setTitle('好きな色は?')
      .setChoices([
        item.createChoice('赤'),
        item.createChoice('青'),
        item.createChoice('緑')
      ]);

  Logger.log('編集用URL: ' + form.getEditUrl());
  Logger.log('回答用URL: ' + form.getPublishedUrl());
}

これだけで、

  • メールアドレス
  • 名前
  • 好きな色

を聞く選択項目が作れます。

 

コード 説明
FormApp.create('アンケートフォーム') 新しいGoogleフォームを「アンケートフォーム」という名前で作成します。
form.addTextItem() テキスト入力欄をフォームに追加します(名前を記入する質問)。
form.addMultipleChoiceItem() 選択肢から1つ選ぶ質問を追加します。
item.setChoices([...]) 選択肢を「赤」「青」「緑」に設定します。
Logger.log(...) 作成されたフォームの「編集用URL」と「回答用URL」をログに出力します。

 

コードを実行すると、このようなフォームのできあがり。

 

 

えっ、フォームってGASで1から作れちゃうの!?
猫男
猫男
catman
catman
その通り。しかも質問内容もスクリプトで柔軟に増減できるぞ。

 

GASでGoogleフォームの登録メールアドレスに自動返信する方法

フォームに回答があったら、自動で受付完了メールを送れます。

以下のスクリプトをフォームに紐付けたコンテナバインド型で作成しましょう。

 
function onFormSubmit(e) {
  const formResponse = e.response;                      // FormResponse
  const itemResponses = formResponse.getItemResponses(); // ItemResponse[]

  let email = '';
  let name  = '';

  itemResponses.forEach(ir => {
    const title = ir.getItem().getTitle();  // 質問タイトル
    const answer = ir.getResponse();        // 回答

    if (title === 'メールアドレス') {
      email = answer;
    } else if (title === 'あなたの名前を教えてください') {
      name = answer;
    }
  });

  Logger.log({email, name});

  if (email) {
    GmailApp.sendEmail(
      email,
      'アンケート回答ありがとうございます',
      `${name} さん、アンケートへのご協力ありがとうございました!`
    );
  }
}

ポイントは「トリガー」を設定すること。

スクリプトエディタで「トリガー」→ onFormSubmit を「フォーム送信時」に紐づけます!

gas フォーム トリガー

詳しくは「GASでGoogleフォーム送信時のトリガーを設定する方法」で復習しておこう。

 

まとめ:GASでGoogleフォームをもっと便利に!

  • フォーム作成:FormAppで一から作れる!
  • 自動返信:onFormSubmitトリガー+GmailAppで即送信!
これならGoogleフォームを超効率化できそう!さっそく作ってみるぞ
猫男
猫男
catman
catman
その調子だ!フォームもスクリプトで操れば、世界が広がるぞ!