イントロダクション
背景
複数の細部が異なるアンケート管理のために、複数の Google フォームからアンケート用ページの公開用URLのまとめたい。
目的
Google フォームの選択→「送信ボタン」→「フォームを送信のリンク」から得られるアンケート回答者用の公開用URLを取得する。
目標
Google スプレッドシートに Google フォーム名, 公開用URLを列名としてデータをまとめる。イメージは下記のような図である。
ソースコード
単一のフォームと公開用URL
予め、フォーム名と公開用URLをまとめるためのスプレッドシートのIDを取得する。
下記のプログラムのIDの部分はスプレッドシードのIDを記入して実行する。
function mySF3(){
// IDで指定したスプレッドシートを開く
var excel_data = SpreadsheetApp.openById('ID').getActiveSheet();
// フォームを作成
var form = FormApp.create("getPublishedUrl");
// 公開用URLを取得
var tmp = form.getPublishedUrl();
// スプレッドシートに書き込み_列名を生成
excel_data.getRange(1,1).setValue("ページ名");
excel_data.getRange(1,2).setValue("公開用URL");
// スプレッドシートに書き込み_内容を書き込み
excel_data.getRange(2,1).setValue(form.getTitle());
excel_data.getRange(2,2).setValue(tmp);
}
複数のフォームと公開用URL
単一のフォームと公開用URLのプログラムに for 文を追加した。二つのフォームとそれらに対応する二つの公開用URLをまとめる。
function mySF32(){
// IDで指定したスプレッドシートを開く
var excel_data = SpreadsheetApp.openById('ID').getActiveSheet();
// スプレッドシートに書き込み_列名を生成
excel_data.getRange(1,1).setValue("ページ名");
excel_data.getRange(1,2).setValue("公開用URL");
for(i = 1; i <= 2; i++){
// フォームを作成
var form = FormApp.create("Test " + i );
form.setTitle("Test " + i )
// 公開用URLを取得
var tmp = form.getPublishedUrl();
// スプレッドシートに書き込み_内容を書き込み
excel_data.getRange(i + 1,1).setValue(form.getTitle());
excel_data.getRange(i + 1,2).setValue(tmp);
}
}