0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GoogleFormが送信されたときにGASを実行させるフォーム送信時トリガーの設定方法

Posted at

フォーム送信時トリガーを設定できるスクリプトエディタは2つある

Form内のスクリプトエディタ

Formの編集画面右上の3つの点のボタンをクリックし表示される「スクリプトエディタ」内で設定することが出来ます。
ただ、次の方法のほうがスプレッドシートに回答が書き込まれデータの管理がしやすいのでおすすめです。
Formスクリプトエディタ.png

Form回答スプレッドシート内のスクリプトエディタ

Formの編集画面「回答」タブ内「スプレッドシートにリンク」からスプレッドシートを作成します。
回答されるたび、このスプレッドシートに1行ずつ追記されていくようになります。
回答スプレッドシート作成.png

作成されたスプレッドシートの「拡張機能」タブ「Apps Script」をクリックし表示される「スクリプトエディタ」内で設定することが出来ます。
以降に記載する、回答の値の取得処理はこちらに関するものです。

回答スプレッドシートスクリプトエディタ.png

フォーム送信時トリガー設定方法

トリガーで実行する関数の用意

まず、トリガーで実行するための関数を用意します。
コード.gs を編集し以下のコードを記載します(トリガー実行確認用の仮のコードです)

function submitForm(event) {
  console.info(event.namedValues);
  console.info("form送信されました。");
}

トリガー実行関数.png

トリガー設定

Form回答スプレッドシート内のスクリプトエディタでトリガーを設定していきます。
画面左の時計マーク「トリガー」をクリックし、「トリガーを追加」をクリックします。
トリガー設定1.png

・実行する関数を選択:実行したい関数を選択
・実行するデプロイを選択:バージョンを指定したい場合はここで設定します。
Headを指定すると現在の最新のコードが実行されます。
・イベントのソースを選択:スプレッドシートから
・イベントの種類を選択:フォーム送信時
を選択し保存します。

トリガー設定2.png

これで、トリガーが設定されました。
トリガー設定3.PNG

それでは、実際にFormを送信してトリガーが動作するか見てみましょう。

Form送信

From送信.png

Formに入力して送信ボタンを押すと

image.png

無事、トリガーが動作していることが確認できました。

Formの回答をGASで取得する

Formの値はnamedValuesというオブジェクトに入っている

トリガーが実行されると event に回答などの情報が設定され関数に渡されます。
その中の namedValues というオブジェクトに
key: Formの項目名
Value: Formの入力値の配列
の形式で入っています。

Form項目名 入力値
記述式項目 "回答"
ラジオボタン項目 "選択肢 1" を選択
チェックボックス項目 "選択肢 1", "選択肢 2" を選択

というようにForm入力された場合、namedValuesは以下のようなオブジェクトになります。

{ 
  'チェックボックス項目': [ '選択肢 1, 選択肢 2' ],
  'ラジオボタン項目': [ '選択肢 1' ],
  'タイムスタンプ': [ '2025/01/19 1:09:38' ],
  '記述式項目': [ '回答' ] 
}

質問名を指定して値を取得する

"タイムスタンプ"と"ラジオボタン項目"の回答を取得したい場合は

function submitForm(event) {
  const namedValues = event.namedValues;
  const timeStamp = namedValues["タイムスタンプ"][0];
  const answer = namedValues["ラジオボタン項目"][0];

  console.info(timeStamp); //'2025/01/19 1:09:38'
  console.info(answer); //'選択肢 1'
}

というようすれば取得できます。

参考

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?