Google Formsの項目をスプレッドシートから自動入力するには?

"過去の回答から、入力された電話番号をもとにGoogle Formの項目を自動入力できますか?"- Google Docs Editors Community

回答者が電話番号や社員IDを入力すれば、それに対応する名前、メールアドレス、住所はすでにGoogle Sheetや過去の回答にあります。Google Formsではそれをすべて入力し直させるので、ミスが入り込みます。Googleのフォーラムでは53人が、フォームにこれを自動で入力してほしいと求めています。Apps Scriptは役に立ちません。記入中に項目を埋めることができないからです。Formfacadeなら、シートを接続して自動入力を普通の英語で説明するだけです。IDを入力すれば、1つまたは複数のシートからフォームが残りを埋め、シートが変更されることはありません。

以下では、自動入力と事前入力の違い、なぜApps Scriptではできないのか、そしてFormfacadeでの設定方法を説明します。

自動入力と事前入力の違い

この2つの言葉は同じ意味で使われがちですが、指しているものは違います。
自動入力は、回答者がフォームに記入している最中に行われます。値を選択または入力すると、関連する項目がシートからリアルタイムで埋まります。たとえば、回答者が社員IDを選ぶと、名前、部署、勤務地が自動で入力されます。
事前入力は、フォームが開かれる前に行われます。フォームの所有者は回答者ごとに専用の事前入力済みリンクを作り、回答者がフォームを開いた時点で一部の項目がすでに埋まっています。たとえば、お客様の名前と注文番号を入力済みにしたフィードバックフォームを送る場合です。事前入力リンクは、手で作ることも、シートのデータからGoogle Sheetsの数式で自動生成することも、Formfacade Prefillを使ってURLパラメータにデータを出さずに安全な事前入力リンクを作ることもできます。
この記事では自動入力を扱います。Google Sheetから事前入力済みリンクを作って特定の回答者に送りたい場合は、Formfacade - Prefill をご覧ください。

Google Formsの自動入力とは?

自動入力は、フォームの質問をGoogle Sheetの1つ以上の列に結び付けます。回答者が値を選択または入力すると、フォームはリアルタイムでシートを照会し、関連するデータで複数の項目を自動で埋めます。
たとえば、回答者がプルダウンから社員IDを選ぶと、名前、部署、勤務地がシートからフォームの対応する項目に自動で入力されます。回答者はこれらの情報を手で入力する必要がありません。
また、回答者がプルダウンから商品を選ぶと、商品説明、価格、在庫数があるシートから、適用される税率と送料が別のシートから自動で入力されます。
自動入力では、接続された1つ以上のシートからデータを取り込み、複数の項目を一度に埋められます。

Apps Scriptは使えますか?

Apps Scriptは、フォームを編集したり、回答者がフォームを送信した後に処理を実行したりするのに使えます。たとえば、シートを参照してプルダウンの選択肢を更新したり、回答者に確認メールを送ったりできます。しかし、Apps Scriptは、Google Forms本体のフォーム内で回答者の入力にリアルタイムで反応することはできません。
自動入力では、回答者が選択または値を入力したその瞬間にフォームが1つ以上のシートを照会し、複数の項目を即座に埋める必要があります。Apps Scriptには回答者の記入中にこれを行う方法がありません。

URLでGoogle Formsをインポートする

すでにGoogle Formsでフォームを作成している場合は、フォームのURLを使ってFormfacadeにインポートできます。これでFormfacadeにフォームのコピーが作られ、そこでルックアップを設定できます。回答者がFormfacadeのリンクからフォームを送信すると、回答はGoogle Formsに記録されます。Google FormsのLink to Sheets機能を使えば、回答をリアルタイムでGoogle Sheetsに自動同期できます。
この例を見てみましょう。ある会社は社員からの申請にGoogle Formを使っています。スタッフがプルダウンから社員IDを選ぶと、名前、部署、勤務地が Employee シートから自動で入力されます。スタッフは申請に固有の内容だけを記入すれば済みます。

設定方法

Google Formには、回答者が答える質問と、自動入力する項目ごとの質問が必要です。Google Sheetには、それぞれに対応する列が必要です。
What do you want to do with your Google Sheets data? の画面。Autofill fields from Google Sheets に印が付いています
  • Google Formのリンクを貼り付けて Next をクリックします。Formfacadeが質問をコピーします
  • シートを選んで Next をクリックします。まだ接続していない場合は Connect a Google Sheet をクリックし、Googleのウィンドウでシートを選びます
  • "How do you want to connect?" の下で、あらかじめ書かれた指示を用途に合わせて編集し、Proceed をクリックします。例:「スタッフが社員IDを選んだら、Employee シートから名前、部署、勤務地を自動入力する」
  • Preview your form をクリックして試します
  • Formfacadeのリンクを回答者に共有します。
やりたいことを普通の英語や他の言語で説明すれば、回答者が選択した時点でリアルタイムにシートを照会し、シートのデータで答えを埋めます。フォームはシートと自動で同期されます。
別の例を見てみましょう。ある小売店はGoogle Formで注文を受け付けています。お客様がプルダウンから商品を選ぶと、商品説明、価格、在庫数が Products シートから、適用される税率と送料が Pricing シートから自動で入力されます。お客様は数量を入力するだけです。例:「お客様が商品を選んだら、Products シートから商品説明、価格、在庫数を、Pricing シートから税率と送料を自動入力する」

この方法を選ぶ理由

  • Apps Scriptは不要。普通の英語の指示で自動入力を設定できます。
  • 大量のデータに対応。Google Sheetsにあるデータなら、どんな大きさでも性能の上限なしで扱えます。
  • 柔軟なUI。ルックアップの項目を非表示にしたり読み取り専用にしたりして、回答者が返された値を編集できないようにできます。
  • シートが唯一の正しい情報源。1か所でデータを更新すれば、接続されたすべてのフォームに自動で反映されます。
  • シートが変更されることはありません。Formfacadeはフォームを速く表示するためにデータを複製しており、シートへの書き込み権限は一切使いません。

よくある質問

複数のシートから項目を自動入力できますか?
はい。同じフォームに複数のシートを接続し、1つの選択に基づいて、別々のシートから別々の項目を自動入力できます。
自動入力された項目を非表示や読み取り専用にできますか?
はい。自動入力された項目を読み取り専用にして回答者が返された値を編集できないようにすることも、完全に非表示にして回答者がフォーム記入中に見えないようにすることもできます。
選択した値がシートにない場合はどうなりますか?
自動入力の項目は空のままになります。一致するデータが見つからなかったときに回答者に知らせるエラーメッセージを設定できます。
回答はGoogle Formsに記録されますか?
はい。インポートする方法でもアドオンでも、回答は通常どおりGoogle Formsに記録されます。Google FormsのLink to Sheets機能を使えば、回答をリアルタイムでGoogle Sheetsに同期できます。

まとめ

すでにGoogle Sheetにある情報を入力し直させるとミスが入り込みますが、Google Formsはそれを代わりに埋めてくれません。Formfacadeなら、シートを接続し、どの項目をシートから埋めるかを普通の英語で説明するだけです。Formfacadeで Google Sheetをフォームに接続 してください。ご質問があれば サポートにご連絡ください。

最終更新: