フォーム全体の回答。FormResponse
を使用する 3 つの方法:
回答者が送信した回答(getItemResponses()
を参照)をプログラムによって
フォームに回答を送信します(withItemResponse(response)
と submit()
を参照)。また、提供された
答えます。FormResponse
は、Form
から作成またはアクセスできます。
// Open a form by ID and log the responses to each question. var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); var formResponses = form.getResponses(); for (var i = 0; i < formResponses.length; i++) { var formResponse = formResponses[i]; var itemResponses = formResponse.getItemResponses(); for (var j = 0; j < itemResponses.length; j++) { var itemResponse = itemResponses[j]; Logger.log('Response #%s to the question "%s" was "%s"', (i + 1).toString(), itemResponse.getItem().getTitle(), itemResponse.getResponse()); } }
メソッド
メソッド | 戻り値の型 | 概要 |
---|---|---|
getEditResponseUrl() | String | 送信済みの回答の編集に使用できる URL を生成します。 |
getGradableItemResponses() | ItemResponse[] | フォームの回答に含まれるすべてのアイテム レスポンスを、アイテムの表示順序で取得します。 入力します。 |
getGradableResponseForItem(item) | ItemResponse | 指定したアイテムのフォーム レスポンスに含まれるアイテム レスポンスを取得します。 |
getId() | String | フォームの回答の ID を取得します。 |
getItemResponses() | ItemResponse[] | フォームの回答に含まれるすべてのアイテム レスポンスを、アイテムの表示順序で取得します。 入力します。 |
getRespondentEmail() | String | Form.setCollectEmail(collect) 設定が有効になっている場合に、回答を送信したユーザーのメールアドレスを取得します。 |
getResponseForItem(item) | ItemResponse | 特定のアイテムについて、このフォーム レスポンスに含まれるアイテム レスポンスを取得します。 |
getTimestamp() | Date | フォームの回答送信のタイムスタンプを取得します。 |
submit() | FormResponse | レスポンスを送信します。 |
toPrefilledUrl() | String | このフォームの回答に基づいて、回答が事前入力されたフォームの URL を生成します。 確認します。 |
withItemGrade(gradedResponse) | FormResponse | フォームの回答に指定されたアイテムの回答の成績を追加します。 |
withItemResponse(response) | FormResponse | 指定したアイテムのレスポンスをフォームのレスポンスに追加します。 |
詳細なドキュメント
getEditResponseUrl()
送信済みの回答の編集に使用できる URL を生成します。もし
Form.setAllowResponseEdits(enabled)
設定が無効になっている場合、リンクをクリックすると、
フォームの回答の編集が無効になっていると説明しています。リンクにアクセスしたユーザーは誰でも、
ただし、Form.setRequireLogin(requireLogin)
設定が有効になっている場合は、フォームにアクセスできるアカウントが必要です。Form.setCollectEmail(collect)
設定が有効である場合、回答を編集したユーザーのメールアドレスがフォームに記録されます。
元の回答者のメールアドレスの代わりに表示されます。
スクリプトによって作成済みであるものの、まだ送信されていないフォーム応答の場合、このメソッドは以下を返します。
null
。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Gets the first form response. const formResponse = form.getResponses()[0]; // Gets the edit URL for the first form response and logs it to the console. const editUrl = formResponse.getEditResponseUrl(); console.log(editUrl);
戻る
String
- 送信されたレスポンスを変更する URL。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getGradableItemResponses()
フォームの回答に含まれるすべてのアイテム レスポンスを、アイテムの表示順序で取得します。
入力します。このメソッドは getItemResponses()
と似ていますが、採点を可能にするため
対応する Item
が入力されていれば ItemResponse
を返します。
実際に回答がない場合でも採点(点数)できます。ただし、
Item
はグレード化できません。このメソッドでは、返された配列からそのアイテムが除外されます。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Gets an array of the form's responses. const formResponses = form.getResponses(); // Gets the item responses contained in each form response. for (const formResponse of formResponses){ const gradableItemsResponses = formResponse.getGradableItemResponses(); // Logs the title and score for each item response to the console. for (const gradableItemsResponse of gradableItemsResponses) { console.log(`${gradableItemsResponse.getItem().getTitle()} score ${gradableItemsResponse.getScore()}`); } }
戻る
ItemResponse[]
- 回答者がフォーム内のすべての質問項目に対する回答の配列
スコアを取得できます
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getGradableResponseForItem(item)
指定したアイテムのフォーム レスポンスに含まれるアイテム レスポンスを取得します。この方法は有効です
getResponseForItem(item)
と似ていますが、未回答の解答を採点できるようにするため、
対応する Item
が採点可能な場合(点数がある場合)、ItemResponse
を返します。
値)。ただし、Item
がグラデーションの対象でない場合、
このメソッドは null
を返します。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Gets an array of the form's responses. const formResponses = form.getResponses(); // Gets the item responses contained in a form response. for (const formResponse of formResponses) { const formItemResponses = formResponse.getGradableItemResponses(); // Logs the title and score for responses to the first item of the form. const itemResponse = formResponse.getGradableResponseForItem(formItemResponses[0].getItem()); console.log(`${itemResponse.getItem().getTitle()} score ${itemResponse.getScore()}`); }
パラメータ
名前 | 型 | 説明 |
---|---|---|
item | Item |
戻る
ItemResponse
- 特定のアイテムに対する回答。回答がなく、アイテムが採点されていない場合は null
です。
getId()
フォームの回答の ID を取得します。フォームのレスポンスにメッセージがない場合、このメソッドは null
を返します。
送信されました。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Gets an array of the form's responses. const formResponses = form.getResponses(); // Loops through the form responses and logs the ID for each form response to the console. for (const formResponse of formResponses) { console.log(`Response ID: ${formResponse.getId()}`); }
戻る
String
- フォームの回答の ID。フォームの回答がまだない場合は null
送信しました。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getItemResponses()
フォームの回答に含まれるすべてのアイテム レスポンスを、アイテムの表示順序で取得します。
入力します。フォームの回答に特定の TextItem
に対する回答が含まれていない場合、
DateItem
、TimeItem
、または ParagraphTextItem
、ItemResponse
そのアイテムに対して返されるレスポンスは空の文字列になります。フォームの回答で
レスポンスがない場合、このメソッドは、返される配列からそのアイテムを除外します。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Gets the responses to the form. const formResponses = form.getResponses(); // Iterates over the responses. for (const formResponse of formResponses) { // Gets the item responses from each form response. const itemResponses = formResponse.getItemResponses(); // Iterates over the item responses. for (const itemResponse of itemResponses) { // Logs the items' questions and responses to the console. console.log(`Response to the question '${itemResponse.getItem().getTitle()}' was '${itemResponse.getResponse()}'`); } }
戻る
ItemResponse[]
- 回答者がフォーム内のすべての質問項目に対する回答の配列
回答がありました。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getRespondentEmail()
Form.setCollectEmail(collect)
設定が有効になっている場合に、回答を送信したユーザーのメールアドレスを取得します。
スクリプトによって作成済みであるものの、まだ送信されていないフォーム応答の場合、このメソッドは以下を返します。
null
。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Gets an array of the form's responses. const formResponses = form.getResponses(); // Loops through the responses and logs each respondent's email to the console. // To collect respondent emails, ensure that Form.setCollectEmail(collect) is set to true. for (const formResponse of formResponses) { console.log(`Respondent Email: ${formResponse.getRespondentEmail()}`); }
戻る
String
- この回答を送信したユーザーのメールアドレス(利用可能な場合)。スクリプトがこの回答を作成したがまだ送信していない場合は null
。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getResponseForItem(item)
特定のアイテムについて、このフォーム レスポンスに含まれるアイテム レスポンスを取得します。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Gets the first item on the form. const item = form.getItems()[0]; // Gets an array of the form's responses. const formResponses = form.getResponses(); // Loops through the responses and logs each response to the first item to the console. for (const formResponse of formResponses) { const itemResponse = formResponse.getResponseForItem(item); console.log(itemResponse.getResponse()); }
パラメータ
名前 | 型 | 説明 |
---|---|---|
item | Item |
戻る
ItemResponse
- 特定のアイテムに対するレスポンス。存在しない場合は null
。
getTimestamp()
フォームの回答送信のタイムスタンプを取得します。
スクリプトによって作成済みであるものの、まだ送信されていないフォーム応答の場合、このメソッドは以下を返します。
null
。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Gets an array of the form's responses. const formResponses = form.getResponses(); // Loops through the responses and logs the timestamp of each response to the console. for (const formResponse of formResponses) { console.log(`Timestamp: ${formResponse.getTimestamp()}`); }
戻る
Date
- このレスポンスが送信されたタイムスタンプ。スクリプトが送信された場合は null
回答を作成しましたが、まだ送信していません。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
submit()
レスポンスを送信します。レスポンスがすでに送信されている場合、スクリプト例外をスローします。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Creates an empty response for the form. const formResponse = form.createResponse(); // Submits an empty response. formResponse.submit();
戻る
FormResponse
- フォームの回答ストアに保存される新しく作成された回答。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
toPrefilledUrl()
このフォームの回答に基づいて、回答が事前入力されたフォームの URL を生成します。 確認します。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Gets the first form response. const formResponse = form.getResponses()[0]; // Generates and logs the URL of a pre-filled form response based on the answers // of the first form response. const prefilledUrl = formResponse.toPrefilledUrl(); console.log(prefilledUrl);
戻る
String
- 回答が事前入力されたフォームの URL。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
withItemGrade(gradedResponse)
フォームの回答に指定されたアイテムの回答の成績を追加します。この方法はフォームにのみ適用されます。 保存されている成績にのみ影響します。 送信しました。また、このメソッドは、アイテムのレスポンスの成績のみを更新します。他の Pod に 実際の回答が返されます(回答がすでに送信されているため)。このメソッドが呼び出された場合 同じ項目に複数回提出しても、最後の成績のみが保持されます。ItemResponse に この方法では、アイテムの成績が削除されます。
// Programmatically award partial credit for a given response var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); var formResponses = form.getResponses(); var formItems = form.getItems(); for (var i = 0; i < formResponses.length; i++) { var formResponse = formResponses[i]; for (var j = 0; j < formItems.length; j++) { var item = formItems[j]; var points = item.asMultipleChoiceItem().getPoints(); var itemResponse = formResponse.getGradableResponseForItem(item); Logger.log('Award half credit for answers containing the word "Kennedy"'); var answer = itemResponse.getResponse(); if (answer != null && answer.includes('Kennedy')) { itemResponse.setScore(points / 2); formResponse.withItemGrade(itemResponse); } } } form.submitGrades(formResponses);
パラメータ
名前 | 型 | 説明 |
---|---|---|
gradedResponse | ItemResponse |
戻る
FormResponse
- この FormResponse
(チェーン用)
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
withItemResponse(response)
指定したアイテムのレスポンスをフォームのレスポンスに追加します。このメソッドはフォームの回答にのみ適用されます。 スクリプトは作成済みだが、まだ送信されていないことを示す。保存されている回答には影響しません。もし メソッドが同じアイテムに対して複数回呼び出された場合、最後のアイテム レスポンスのみが保持されます。
// Opens the Forms file by its ID. // If you created your script from within a Google Forms file, you can // use FormApp.getActiveForm() instead. // TODO(developer): Replace the ID with your own. const form = FormApp.openById('abc123456'); // Creates a response for the form. const formResponse = form.createResponse(); // Appends a checkbox item to the form. const item = form.addCheckboxItem(); // Sets the title of the item to 'Which items are ice cream flavors?' item.setTitle('Which items are ice cream flavors?'); // Sets choices for the item. item.setChoices([ item.createChoice('Vanilla'), item.createChoice('Strawberry'), item.createChoice('Brick') ]); // Creates a response for the item. const response = item.createResponse(['Vanilla', 'Strawberry']); // Adds the item response to the form response. formResponse.withItemResponse(response); // Submits the form response. formResponse.submit();
パラメータ
名前 | 型 | 説明 |
---|---|---|
response | ItemResponse |
戻る
FormResponse
- この FormResponse
(チェーン用)。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms