Class FormResponse

FormResponse

フォーム全体に対する回答。FormResponse を使用するには、回答者が送信した回答にアクセスする(getItemResponses() を参照)、プログラムでフォームに回答を送信する(withItemResponse(response)submit() を参照)、提供された回答を使用してフィールドを事前入力するフォームの URL を生成する、という 3 つの方法があります。FormResponseForm から作成またはアクセスできます。

// 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()StringForm.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 を返します。

パラメータ

名前説明
itemItem

戻る

ItemResponse - 特定のアイテムのレスポンス。存在しない場合、採点なしのアイテムの場合は null


getId()

フォーム レスポンスの ID を取得します。このメソッドは、フォーム レスポンスがまだ送信されていない場合は null を返します。

戻る

String - フォームのレスポンスの ID(フォーム レスポンスがまだ送信されていない場合は null)。

認可

このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getItemResponses()

フォームのレスポンスに含まれるすべてのアイテム レスポンスを、アイテムがフォームに出現する順序で取得します。フォームのレスポンスに特定の TextItemDateItemTimeItemParagraphTextItem のレスポンスが含まれていない場合、そのアイテムに対して返された 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)

特定のアイテムについて、このフォームのレスポンスに含まれるアイテムのレスポンスを取得します。

パラメータ

名前説明
itemItem

戻る

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);

パラメータ

名前説明
gradedResponseItemResponse

戻る

FormResponse - この FormResponse(チェーンの場合)

認可

このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

withItemResponse(response)

指定したアイテムのレスポンスをフォームのレスポンスに追加します。このメソッドは、スクリプトが作成したが、まだ送信されていないフォーム レスポンスにのみ適用されます。フォームに保存されているレスポンスには影響しません。同じアイテムに対してこのメソッドが複数回呼び出されると、最後のアイテム レスポンスのみが保持されます。

パラメータ

名前説明
responseItemResponse

戻る

FormResponse - この FormResponse(チェーンの場合)

認可

このメソッドを使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms