Google App Script(GAS)をGoogleフォームで使うと、フォームと連携して回答を記入していくスプレッドシートを作成したり連携することができます。
ここでは、スプレッドシートを新規作成してフォームと連携させる方法や、既存のスプレッドシートをフォームと連携させる方を実例を踏まえて解説しています。
どんなことができるのか?
通常手作業で行う以下の処理をGASで行うことができます。
Googleフォームで「回答 → スプレッドシートにリンク」をクリック
「新規」または「既存」のスプレッドシートを選択する。
新規作成したスプレッドシートとフォームと連携させる方法
スプシの作成と連携
新規作成したスプレッドシートとフォームと連携させるには、まずSpreadsheetApp.createでスプレッドシートを新規作成します。
SpreadsheetApp.create('スプレッドシートの名前')
次に、setDestinationメソッドで作成したスプシのIDを指定して連携を完了させます。
form.setDestination(FormApp.DestinationType.SPREADSHEET, スプシのID)
実例
function setSpreadsheet() {
const form = FormApp.openById('フォームのID');
const ss = SpreadsheetApp.create('スプレッドシートの名前');
const ssId = ss.getId();
form.setDestination(FormApp.DestinationType.SPREADSHEET, ssId);
}
これで、フォーム編集画面の「回答」の「スプレッドシートにリンク」が切り替わります。
↓ プログラム実行後
リンク先は指定したファイル名のスプレッドシートです。
自動生成されるシート名は「Form Responses 1」となります。
既存のスプレッドシートとフォームと連携させる方法
既存のスプレッドシートIDの取得
既存のスプレッドシートとフォームと連携させるには、スプレッドシートのIDを直接指定します。
const ssId = "スプレッドシートのID"
次に、setDestinationメソッドでスプシのIDを指定して連携を完了させます。
スプレッドシートのIDはどこにあるか?
スプレッドシートのIDはスプレッドシートを開いたときのURLに記載されています。
/dと/editで囲まれた部分がIDになります。
実例
function setSpreadsheet() {
const form = FormApp.openById('フォームのID');
const ssId = "スプレッドシートのID"
form.setDestination(FormApp.DestinationType.SPREADSHEET, ssId);
}
先ほど新規作成したシートに連携させると、「Form Responses 2」というシートが自動生成されます。