14
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Googleフォームの選択肢をスプレッドシート管理して、さらに回答されたものは自動削除する

Last updated at Posted at 2020-06-08

この記事は移行しました!最新の内容はこちらをご覧ください😀

はじめに

Googleフォームで選択肢を動的にしたいときってありますよね!

具体的には、
① スプレッドシートに候補日リストつくる
② Googleフォームで①から1つ選んで予約する
③ ②で選ばれたやつが①から消えてフォームで選べなくなる
みたいなことがやりたい!

作ったもの

https://github.com/naoqoo2/auto-delete-choices-gas
ほぼリアルタイムで選択肢を最新化します。

  • スプレッドシートの変更反映
  • 回答された選択肢の削除

d.gif

導入手順

  1. フォームとスプレッドシートを作る
  2. スプレッドシートにスクリプト貼り付け
  3. スプレッドシートにトリガーを設定する
  4. フォームにスクリプトを貼り付け
  5. フォームにトリガーを設定する

1. フォームとスプレッドシートを作る

いつも通り作成します。
のちほどIDを使いますのでURLから取得しておいてください。

2. スプレッドシートにスクリプト貼り付け

まずスクリプトエディタを開きます。

image.png

このコードをコピペして保存します。
下記を書き換えてください。

var form_id = '1zpr5c46YWqJqhTBMIFAr9X8bXezJtOdP6OSkoLptvLs'; // フォームID
var question_title = 'ご希望の日程をお選びください'; // 動的にしたい質問のタイトル
var sheet_id = '1Psa8ngX9_Q5sP4YS3P7DR0ACQoHK_tiSh9D9uZaK0qE'; // スプレッドシートID
var sheet_name = 'シート1'; // シート名

3. スプレッドシートにトリガーを設定する

スクリプトエディタからトリガーを開きます。(時計アイコン)
image.png

セルを追加・変更した時にフォームに反映させるためトリガーを設定

  • 実行する関数:change_pulldown_list
  • イベントの種類を選択:編集時
  • エラー通知設定:今すぐ通知を受け取る (問題があった時にすぐ気づけるのでオススメ)

こんな感じです。

image.png

保存時に「Googleアカウントへのアクセスをリクエストしています」と聞いてくるので許可してください。

行を削除した時にフォームに反映させるためトリガーを設定

行の削除は「編集時」イベントでは拾えないため、「変更時」のトリガーも設定してあげます。

  • イベントの種類を選択:変更時

となるだけで、あとは同様です。

4. フォームにスクリプトを貼り付け

2と全く同じスクリプトをフォームのスクリプトエディタにも設定してください。

image.png

5. フォームにトリガーを設定する

回答された選択肢を削除するためトリガーを設定

  • 実行する関数:triger_submit ※スプレッドシートと異なるのでご注意ください
  • イベントの種類を選択:フォーム送信時

これで完成です。

参考

14
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?