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」となります。
SpreadsheetApp.createで作成したスプレッドシートのデフォルトの言語は「アメリカ合衆国」になっています。
このため、追加したシートは「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」というシートが自動生成されます。

フォームの回答先として指定できるのは1つのスプレッドシートのみです。
既にスプシを連携してある状態で、setDestinationメソッドを使って新しいスプシを連携した場合、もとのシートとフォームの連携は切れます。