2016-04-15 8 views
1

1つのアイテムしか持たないGoogleフォームがあるとします。私がフォームを提出するとすぐに、それは応答を変更するようにスクリプトが欲しいです。たとえば、ユーザーが質問に入力したものが何であれ、スクリプトを "foo"に変更したいと思います。フォームレスポンスGoogleシートでは、レスポンスとして「foo」も表示されます。フォーム用Google Script:フォームレスポンスが送信されるとすぐに編集する

私はそれがform = FormApp.getActiveForm()edit_responseがイベントeをとる関数であるScriptApp.newTrigger("edit_response").forForm(form).onFormSubmit().create();のようなものを必要とする知っています。しかし、私はフォームの応答を変更できる方法を見つけることができないようです...

答えて

2

Googleフォーム内のフォーム応答はであり、はApps Scriptで編集できます。スプレッドシートに保存された応答はに変更できますが、フォーム内の既存の応答は変更できません。フォームレスポンスはコードで削除できますが、Apps Scriptメソッドでは編集できません。

On Form Submitトリガーを手動で設定できます。コードで新しいフォームを作成し、自動的に配布する場合を除き、コードからトリガーを作成する必要はありません。または、アドオンをフォームにインストールさせることもできます。

フォームの応答は常にフォームに書き込まれます。フォーム応答データをスプレッドシートに書き込むこともできます。データが書き込まれる前に、データを傍受することはできません。しかし、と書かれた直後に変更することができます。

On Form Submitトリガーとして機能する関数は、フォームデータを含むJavaScriptオブジェクトを受け取ることができます。オブジェクトに割り当てられていた変数は、しばしば "e"です。しかしそれは何でもよい。

function myOnFormSubmitFunc(e) {}; 

オンフォーム送信トリガーは、フォーム、シート、またはその両方に指定できます。シートのOn Form Submitオブジェクトは、Formとは異なります。たとえば、フォーム上のシート送信オブジェクトでは、値の配列を直接取得できます。

var arrayOfValues = e.values; 

Apps Script Documentation - Sheets Form Submit events

ありFormResponseクラスです:

Apps Script Documentation - FormResponse

は、しかし、それはフォーム内の既存のフォーム応答を編集することはできません。

+0

ありがとうございました!特定の日付にフォームを閉じる必要があるため、トリガを追加しました。 「書き込む前にデータを傍受することはできません。 – donjar

関連する問題