Formの回答先を設定する
通常Formを新規に作成した場合、回答先のスプレットシートはFormのメニューから
選択か、設定しなければ新規のスプレットシートが作成される。
選択か、設定しなければ新規のスプレットシートが作成される。
回答先の設定をスクリプト上で行う
- スクリプトエディッタ起動し以下内容で編集
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* スプレットシートとフォームの結び付け | |
*/ | |
function bindForm() { | |
// フォーム取得 | |
var formUrl = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; | |
var form = FormApp.openByUrl(formUrl); | |
// スプレットシート取得 | |
var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId()); | |
var date = new Date(); | |
var sheetName = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate(); | |
// シート名を変更 | |
var sheets = ss.getSheets(); | |
for (var i = 0; i < sheets.length; i++) { | |
// シート名に「フォームの回答」が含まれている場合 | |
var name = sheets[i].getName(); | |
if (name.indexOf('フォームの回答') != -1 | |
&& name.indexOf(sheetName) == -1) { | |
sheets[i].setName(sheetName); | |
} | |
} | |
} |
※ FormのURLはFormエディッター画面のURL
(https://docs.google.com/forms/d/{FormのID}/edit)をコピー
何をやっているかというと、
1. FormのURLからオブジェクトを取得
2. GASを実行するスプレットシートに回答用のシート(日付)が作成されるように設定
※ ここは設定したいスプレットシートに置き換える
3. 設定した時点で「フォームの回答」シートが作成されるので、
そのシート名を日付に修正
ん〜単純。
同じシートを作らないようなチェックは何もしてないのであしからず・・・
(https://docs.google.com/forms/d/{FormのID}/edit)をコピー
1. FormのURLからオブジェクトを取得
2. GASを実行するスプレットシートに回答用のシート(日付)が作成されるように設定
※ ここは設定したいスプレットシートに置き換える
3. 設定した時点で「フォームの回答」シートが作成されるので、
そのシート名を日付に修正
ん〜単純。
同じシートを作らないようなチェックは何もしてないのであしからず・・・
Formと回答スプレットシートのリンク解除
設定した回答スプレットシートのリンクを解除したい場合、Formのエディッター画面のメニューから「回答」>「フォームのリンクを解除」でOK

0 件のコメント:
コメントを投稿