動的になるように、スプレッドシートのデータを使用するフォームを作成したいと思います。これを行うことは可能ですか?方法や例を説明している場所を見つけることができませんでした。
可能と思われるのは、フォームからスプレッドシートに入力することだけです。これも使用しますが、ここでは主な関心事ではありません。
動的になるように、スプレッドシートのデータを使用するフォームを作成したいと思います。これを行うことは可能ですか?方法や例を説明している場所を見つけることができませんでした。
可能と思われるのは、フォームからスプレッドシートに入力することだけです。これも使用しますが、ここでは主な関心事ではありません。
はい、そうです。Form スクリプトを使用し、FORM OPEN のトリガーを使用してスプレッドシートから情報を更新します。以下は、2 つの異なるシートからデータを取得し、コンボ ボックスと複数選択コントロールにデータを挿入する例です。
function getNewNames(){
var form = FormApp.getActiveForm();
var items = form.getItems();
var ss = SpreadsheetApp.openByUrl(
'https://docs.google.com/spreadsheets/d/YOURDOCSNAMEHERE/edit');
var assSheet1 = ss.getSheetByName('Sheet1');
var assValues = assSheet1.getDataRange().getValues();
var values = assValues.slice(1);
var valSort = values.sort();
var ss2 = SpreadsheetApp.openByUrl(
'https://docs.google.com/spreadsheets/d/DOCSNAMEHERE/edit');
var playerSheet1 = ss2.getSheets()[0];
var playerValues = playerSheet1.getDataRange().getValues();
var player = playerValues.slice(0);
var plySort = player.sort();
var names = [];
for(var p = 0; p < plySort.length; p++){
names.push(plySort[p][0])
}
var pList = items[0].asListItem();
pList.setChoiceValues(names).setRequired(true).setHelpText('Please Select Player Name')
var areas = [];
for (var i = 0; i < valSort.length; i++) {
areas.push(valSort[i][1])
}
var aList = items[1].asMultipleChoiceItem();
aList.setChoiceValues(areas).setRequired(true).setHelpText('Select Area of Assessment')
}
Google Apps Scripts.. 最終的に、プログラムで Google フォームを生成する十分に文書化された方法です。https://developers.google.com/apps-script/reference/forms/
現在、スプレッドシートのフォームを作成、取得、更新、および削除できるフォーム API を追加する機能のリクエストがあります。この機能は現時点では存在しませんが、存在する場合は、フォーム API およびスプレッドシート データ API を使用して、スプレッドシート データをフォーム データにリンクできるようになります。機能リクエストはこちらです。