【Googleスプレッドシート】Googleフォームの回答を自動取り込み!連動シートの作成

【Googleスプレッドシート】Googleフォームの回答を自動取り込み!連動シートの作成
🛡️ 超解決

Googleフォームでアンケートや申し込みフォームを作成したあと、回答データを手動でコピー&ペーストしていませんか。回答が増えるたびに手作業で転記するのは手間がかかり、ミスも発生しやすくなります。実はGoogleフォームは最初からスプレッドシートと連動する機能を備えており、回答を自動で取り込むことができます。この記事ではフォーム回答をスプレッドシートに自動連携する3つの方法と、設定時の注意点を詳しく解説します。

【要点】Googleフォームの回答をスプレッドシートに自動取り込む方法

  • フォーム作成時の連動シート作成: フォーム編集画面の「回答」タブからスプレッドシートを作成すると、新しい回答が自動で追加されます。
  • 既存フォームのシート変更: すでに運用中のフォームでも「回答の保存先」から別のシートを指定して連動を切り替えられます。
  • スクリプトによる高度なカスタマイズ: Apps Scriptを使って回答を別のシートに振り分けたり、特定の条件で通知を送ることも可能です。

ADVERTISEMENT

フォームとスプレッドシートが自動連動する仕組み

Googleフォームで作成したフォームには、回答を保存するための「回答の保存先」という設定があります。ここでスプレッドシートを指定すると、フォームが送信されるたびにそのシートの1行目に新しい回答が自動的に追加されます。この仕組みにより、回答の手動転記が完全に不要になります。連動するスプレッドシートはフォーム作成時に新規作成することも、既存のスプレッドシートを指定することもできます。また、1つのフォームに対して複数のスプレッドシートを連動させることはできませんが、1つのスプレッドシートの複数シート(タブ)に回答を振り分けることは可能です。

フォーム作成時に自動連動シートを作成する手順

最も簡単な方法は、フォームを作成する段階でスプレッドシートを連動させることです。以下の手順で進めてください。

  1. フォーム編集画面を開く
    Googleフォーム(forms.google.com)にアクセスし、新しいフォームを作成するか、既存のフォームを開きます。右上の「送信」ボタンの横にある「回答」タブをクリックしてください。
  2. スプレッドシートの作成アイコンをクリック
    「回答」タブの右上に緑色のスプレッドシートアイコンがあります。これをクリックすると、「回答の保存先を選択」ダイアログが表示されます。
  3. 「新しいスプレッドシートを作成」を選択
    ダイアログでは「新しいスプレッドシートを作成」と「既存のスプレッドシートを選択」の2択があります。新しく連動専用のシートを作りたい場合は前者を選び、シート名を入力して「作成」をクリックします。すると自動的にGoogleスプレッドシートが開き、1行目にフォームの質問項目がヘッダーとして書き込まれます。
  4. 回答をテスト送信して確認
    フォームをプレビューしてテスト回答を1件送信します。スプレッドシートを開き、2行目以降に自動でデータが追加されていることを確認してください。これで連動設定は完了です。

既存のフォームに後からスプレッドシートを連動させる手順

すでに運用中のフォームでも、後からスプレッドシートを連動させることができます。設定を変更しても、それまでに集まった回答は消えません。以下の手順で行います。

  1. フォームの「回答」タブを開く
    フォーム編集画面を開き、「回答」タブをクリックします。すでに回答が蓄積されている場合は、回答の一覧が表示されます。
  2. 「回答の保存先」の三点リーダをクリック
    「回答」タブの右上に「スプレッドシートにリンク」というグレーのボタンがある場合、それをクリックします。すでに連動中の場合は、現在のスプレッドシート名がリンク表示されています。その右側の三点リーダ(縦の三点)をクリックし、「回答の保存先を選択」を選びます。
  3. 既存のスプレッドシートを選択する
    ダイアログで「既存のスプレッドシートを選択」を選び、目的のスプレッドシートをドライブから選びます。注意点として、既存のシートにヘッダー行がすでにある場合、フォームの質問項目と一致している必要があります。一致しない場合は新しいシートが追加されるか、エラーの原因になります。
  4. 「選択」をクリックして完了
    スプレッドシートを選択したら「選択」ボタンをクリックします。するとフォームの回答がそのスプレッドシートのアクティブなシートに自動で追加されるようになります。既存の回答は自動では移行されませんが、手動でコピーすれば統合できます。

ADVERTISEMENT

フォーム回答を別のシートに自動振り分けする方法

1つのフォームで複数の部署やカテゴリのデータを受け取る場合、回答内容に応じてシートを分けたいことがあります。標準機能では1つのシートにしか保存できませんが、Apps Script(Google Apps Script)を使えば自動振り分けが可能です。以下に簡単なサンプルを示します。

  1. スプレッドシートのスクリプトエディタを開く
    連動しているスプレッドシートを開き、メニューから「拡張機能」→「Apps Script」を選びます。スクリプトエディタが新しいタブで開きます。
  2. サンプルコードを貼り付ける
    エディタに以下のコードを貼り付けます。このコードはフォーム回答が追加されたときに、回答の質問の値(例:部署名)に応じて別のシートにコピーするものです。
    function onFormSubmit(e) {
    var sheet = e.source.getActiveSheet();
    var row = e.range.getRow();
    var data = sheet.getRange(row, 1, 1, sheet.getLastColumn()).getValues()[0];
    var category = data[1]; // 例:B列にカテゴリがある場合
    var targetSheet = sheet.getParent().getSheetByName(category);
    if (targetSheet) {
    targetSheet.appendRow(data);
    }
    }
  3. トリガーを設定する
    スクリプトエディタの左メニューから「トリガー」を選び、「トリガーを追加」をクリックします。関数を「onFormSubmit」、イベントを「スプレッドシートから」「フォーム送信時」に設定して保存します。初回は権限の承認が必要です。
  4. テスト送信して動作確認
    フォームをテスト送信し、指定した条件のシートにデータがコピーされるか確認します。うまく動かない場合はログを確認してデバッグしてください。

連動シートでよくあるトラブルと注意点

フォームの質問項目が変わったときにシートのヘッダーがずれる

フォームの質問を追加・削除・並び替えると、連動シートの1行目(ヘッダー)は自動では更新されません。その結果、新しい回答の列がずれてしまい、データが正しく保存されないことがあります。質問を変更したら、必ず連動シートのヘッダー行を手動で修正してください。また、変更前にシートのバックアップを取ることをおすすめします。

回答が二重に保存されてしまう

スプレッドシートに手動で同じデータを貼り付けたあとにフォームが送信されると、重複データが生まれます。これを防ぐには、連動シートには直接編集を加えず、別のシートでデータを加工するようにしましょう。また、Apps Scriptのトリガーが複数設定されている場合も重複の原因になります。トリガーは1つだけにしておいてください。

「回答の保存先」に既存のスプレッドシートが選択できない

ドライブのアクセス権限が適切でないと、既存のスプレッドシートを選択できないことがあります。スプレッドシートの所有者が自分であるか、編集権限が付与されていることを確認してください。また、フォームとスプレッドシートが同じGoogleアカウントで管理されている必要があります。

まとめ

Googleフォームの回答をスプレッドシートに自動取り込むには、フォーム作成時に「回答」タブから新しいシートを作成する方法が最も簡単です。既存のフォームでも「回答の保存先」を変更すれば後から連動できます。さらに業務に合わせて、Apps Scriptで回答を自動振り分けたり、条件に応じて通知を送ることも可能です。ぜひ今回紹介した手順を試して、データ収集の効率を大きく向上させてください。次のステップとして、IMPORTRANGE関数を使えば連動シートのデータを別のファイルから参照することもできますので、あわせてご検討ください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。