【GAS】Googleフォームの回答をスプレッドシートと連携する方法を実例で解説|新規 or 既存のシートの指定(AppScript)

Google form フォーム GAS-prograshi(プロぐらし)-kv AppsScript
記事内に広告が含まれていることがあります。

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」となります。これを日本語に変更する方法については下記をご参考ください。

【GAS】スプレッドシートの言語と地域を変更・取得する方法



既存のスプレッドシートとフォームと連携させる方法

既存のスプレッドシート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メソッドを使って新しいスプシを連携した場合、もとのシートとフォームの連携は切れます。


タイトルとURLをコピーしました