以前に作成していたnoteで人気のあったGoogleフォームについてまとめてみたいと思います。今回の記事はGAS連携だけではなく、Googleフォームの標準的な機能のうち、お問い合わせや現場の事例で要望の多い内容についてもまとめていっていきたいと思います。Googleフォームは手軽である一方、正直制約もあるため必ずしも完璧であるツールではないと思います。しかしながら、工夫次第ではかなり幅広く利用することができるため、アンケートサービスなどのSaaSの契約をする前に、ちょっと立ち止まってGoogleフォームでやりたいことが実現できないか?といったことを考えてみるのは一興かと思います。
Googleフォームの項目をGASで一括作成/変更する
例えば、都道府県や学校名などをプルダウンの入力フォームで選択させたいといったケースがあるかと思います。そのような際に、手動で入力していくこともできなくはないですが、非常に時間がかかります。
こうした際に、項目を記入したスプレッドシートを用意し、その内容を読み込みGoogleフォームの項目として新規に作成するといったことができます。
また、Googleフォームは設定した項目ごとにIDが割り振られますが、このIDを活用して一度セットした項目の値を更新(変更/追加/削除)するといったことが可能になります。
GoogleフォームとGASで承認ワークフローを作る
Googleフォームはアンケートやお問い合わせ窓口以外にも、工夫次第で組織内の承認フローに活用することもできます。企業向けに稟議承認用のワークフローを作るというのが一番イメージがわきやすいでしょうか。
例えば備品購入用のワークフローを作ろうとすうると、Googleフォームで稟議に必要な項目を入力するフォームを作成し、GASを使って稟議承認のメールを承認者向けに投げて、承認者が可否をした結果が、スプレッドシートに蓄積されていくといったものです。
当オフィスで提供している「デジタル教材向けコンテンツ配信システム」のサービスお申込み部分でも活用しています。
Googleフォームで回答期限を設ける
以前のブログでも紹介しましたがnoteでの記事掲載時に一番人気のあった内容です。詳細は下記の記事をご確認いただければと思います。
・ 【そのまま使える】Googleフォームで回答期限を設けるスクリプト
Googleフォームの初期値を設定する
こちらも以前に紹介したnoteの記事に詳細がまとまっています。
・Googleフォームで初期値を設定する方法
関連する記事としてこちらもご参考にしていただければ幸いです。
・Googleフォームで初期値を設定する方法 (改)
・Googleフォームで初期値を設定する場合はURLの2000文字制限にご注意を
Googleフォームの回答内容を確認し編集する
Googleフォームの作成者が回答方法を確認する場合は公式ドキュメントに掲載の方法で確認していけばよいわけですが、回答者自身が確認したい場合はどうするとよいでしょうか?主だった方法としては、下記のようなパターンが考えられます。
①回答の編集を許可する。この場合、ユーザーの挙動としては以下の様になります。フォーム回答後の画面に「回答を編集」リンクがあれば、そこをクリックして編集する。ただし、回答画面を閉じてしまったりすると編集することはできません。(参考:アンケートの回答を編集できるようにする)
②メールアドレスの収集をONにして、回答の編集を許可する。フォーム回答後に届くメール(メールが届けばですが)にて回答内容を確認できます。また回答編集ボタンから遷移して編集できます。
③回答の編集を許可し、回答を1回に制限する。こうするとGoogleフォームへの回答時にログインが求められますが、①のように回答後に画面を閉じても、再度編集することができます。ただし、設定した通り1アカウントにつきユニークな1つの回答しか回答できません。
④GASを利用して回答を編集可能な仕組みを構築する。例えば、回答者毎にIDを付与するような仕組みを別途用意し、そのIDをキーにしてGoogleフォームの初期値を設定する仕組みを使い回すことにより、入力済みのフォームを取得できそうです。ただ、もちろん入力値自体に上限があるので、これも完璧な解決策とはなり得ない可能性があります。
Googleフォームで顧客管理システムを作る
こちらも以前に紹介したnoteの記事に詳細がまとまっています。
【そのまま使える】GAS/Googleフォーム/スプレッドシートによる顧客管理システム
Googleフォームの回答スプレッドシートのデータの扱い
Googleフォームの回答はスプレッドシートで勝手によろしくやってくれるわけですが、このスプレッドシートを使って色々データをいじってみようとすると、色々と疑問が湧いてきたりします。中にはそもそもそんな使い方しない方が良いのではないかといったものも含まれるかもしれませんが、実際に運用する中で、運用者の方でこんな風に使ってみたいが挙動が不安なので確認してほしいといったケースのものもあります。例えば以下のような内容です。
- 回答したスプレッドシートの行を削除するとどうなるのか?
- → スプレッドシートのデータからは当然に削除される。そして新たな回答があれば最後の行に回答が追加されていく。
- 回答スプレッドシートに別のデータを移植してくるとどうなるのか
- 例えば現在の回答されているデータの下に別のスプレッドシートから(同一形式の)データをコピーします。すると、次に回答があった場合は、コピーしたデータの下にデータが挿入される形になります。
- ソートするとどうなるのか?
- フィルタを使ってソートする分には特にデータは壊れたりしません。
- 新しくフォームの項目を追加した場合
- 回答側のスプレッドシートには新しく行が追加されます。
- 回答スプレッドシートを用いて他のスプレッドシートやGASと連携する際にフラグ管理用の列を設けようとする場合はここの列が動いていくので何らか管理が必要になります。
その他
上記の内容から、こんなこともできるのでは?これはどうすると実現できるのか?といった疑問などありましたら、お気軽にコメント/お問合せいただければ幸いです!