LoginSignup
5
8

More than 5 years have passed since last update.

[GAS] Google フォームの公開用URLを取得し、スプレッドシートにまとめる

Last updated at Posted at 2018-10-15

イントロダクション

背景

複数の細部が異なるアンケート管理のために、複数の Google フォームからアンケート用ページの公開用URLのまとめたい。

目的

Google フォームの選択→「送信ボタン」→「フォームを送信のリンク」から得られるアンケート回答者用の公開用URLを取得する。

目標

Google スプレッドシートに Google フォーム名, 公開用URLを列名としてデータをまとめる。イメージは下記のような図である。
名称未設定2.png

ソースコード

単一のフォームと公開用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);

  }
}

参考文献

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8