フォーム全体に対する回答。FormResponse
を使用するには、回答者が送信した回答にアクセスする(getItemResponses()
を参照)、プログラムでフォームに回答を送信する(withItemResponse(response)
と submit()
を参照)、提供された回答を使用してフィールドを事前入力するフォームの URL を生成する、という 3 つの方法があります。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()); } }
Methods
方法 | 戻り値の型 | 概要 |
---|---|---|
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
を返します。
戻る
String
- 送信されたレスポンスを変更する URL
認可
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getGradableItemResponses()
フォームのレスポンスに含まれるすべてのアイテム レスポンスを、アイテムがフォームに出現する順序で取得します。この方法は getItemResponses()
と同様に機能しますが、欠損した回答を採点するために、実際のレスポンスがない場合でも、対応する Item
を採点できる(点点がある)場合は ItemResponse
を返します。ただし、Item
が採点可能でない場合、このメソッドはその項目を返される配列から除外します。
戻る
ItemResponse[]
- 回答者がスコアを受け取ることができるフォーム内のすべての質問項目に対する回答の配列。
認可
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getGradableResponseForItem(item)
特定のアイテムのフォーム レスポンスに含まれるアイテム レスポンスを取得します。このメソッドは getResponseForItem(item)
と同様に動作しますが、欠損した回答を採点するために、実際のレスポンスがない場合でも、対応する Item
を採点できる(点点がある)場合は ItemResponse
を返します。ただし、Item
が採点可能でない場合、このメソッドは null
を返します。
パラメータ
名前 | 型 | 説明 |
---|---|---|
item | Item |
戻る
ItemResponse
- 特定のアイテムのレスポンス。存在しない場合、採点なしのアイテムの場合は null
。
getId()
フォーム レスポンスの ID を取得します。このメソッドは、フォーム レスポンスがまだ送信されていない場合は null
を返します。
戻る
String
- フォームのレスポンスの ID(フォーム レスポンスがまだ送信されていない場合は null
)。
認可
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getItemResponses()
フォームのレスポンスに含まれるすべてのアイテム レスポンスを、アイテムがフォームに出現する順序で取得します。フォームのレスポンスに特定の TextItem
、DateItem
、TimeItem
、ParagraphTextItem
のレスポンスが含まれていない場合、そのアイテムに対して返された ItemResponse
のレスポンスには空の文字列が含まれます。フォームのレスポンスで他のアイテム タイプのレスポンスが省略されている場合、このメソッドはそのアイテムを返す配列から除外します。
戻る
ItemResponse[]
- 回答者が回答を提供したフォーム内のすべての質問項目に対する回答の配列
認可
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getRespondentEmail()
Form.setCollectEmail(collect)
設定が有効な場合、レスポンスを送信したユーザーのメールアドレスを取得します。
スクリプトが作成したが、まだ送信されていないフォーム レスポンスについては、このメソッドは null
を返します。
戻る
String
- このレスポンスを送信したユーザーのメールアドレス(利用可能な場合)。または、null
がこのレスポンスを作成してまだ送信していない場合のメールアドレス。
認可
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getResponseForItem(item)
特定のアイテムについて、このフォームのレスポンスに含まれるアイテムのレスポンスを取得します。
パラメータ
名前 | 型 | 説明 |
---|---|---|
item | Item |
戻る
ItemResponse
- 特定のアイテムに対するレスポンス。存在しない場合は null
。
getTimestamp()
フォーム レスポンス送信のタイムスタンプを取得します。
スクリプトが作成したが、まだ送信されていないフォーム レスポンスについては、このメソッドは null
を返します。
戻る
Date
- このレスポンスが送信された時点のタイムスタンプ。スクリプトがレスポンスを作成したものの、まだ送信されていない場合は null
になります。
認可
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
submit()
レスポンスを送信します。レスポンスがすでに送信されている場合は、スクリプト例外をスローします。
戻る
FormResponse
- フォームのレスポンス ストアに保存される、新しく作成されたレスポンス
認可
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
toPrefilledUrl()
このフォームの回答に基づいて回答が事前入力されるフォームの URL を生成します。
戻る
String
- 回答が事前入力されたフォームの URL
認可
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
withItemGrade(gradedResponse)
指定した項目の成績のフォームをフォームの回答に追加します。この方法は、すでに送信済みのフォーム レスポンスにのみ適用され、保存済みの成績が送信された場合にのみ影響します。また、このメソッドはアイテムのレスポンスの成績のみを更新します。レスポンスは送信済みであるため、実際のレスポンスには影響しません。同じ項目に対してこのメソッドを複数回呼び出すと、最後の成績のみが保持されます。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)
指定したアイテムのレスポンスをフォームのレスポンスに追加します。このメソッドは、スクリプトが作成したが、まだ送信されていないフォーム レスポンスにのみ適用されます。フォームに保存されているレスポンスには影響しません。同じアイテムに対してこのメソッドが複数回呼び出されると、最後のアイテム レスポンスのみが保持されます。
パラメータ
名前 | 型 | 説明 |
---|---|---|
response | ItemResponse |
戻る
FormResponse
- この FormResponse
(チェーンの場合)
認可
このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms