【Google Forms】プログラムとかの知識0の人向け 定員あり&変更とキャンセル可能な予約フォームのつくりかた(画像あり)
作成日:2023/8/17
プログラムが全く書けない人でもこのままやればできる、という記事を目指しました。(私もそうでした)
やり方がいくつかのサイトに散らばっているのでそのまとめのような記事です。
使えるシチュエーション
・Google Formsで、複数の時間枠から選択する面接予約フォームをつくりたいが、予約され次第その枠は選べなくなるようにしたい。ついでに予約の変更やキャンセルも自動で反映させたい。
・ちなみに筆者は大学の卒業論文のために人を対象にした実験をするので、その日程調整を楽にするために作りました。
やることは2つ(+α)
1.定員のある予約フォームをつくる
Google FormsにGoogleスプレッドシート(Excelみたいなやつ)を連携させて予約フォームをつくる
※予約状況(回答結果)の確認はGoogleスプレッドシート上で行います。
2. 変更・キャンセルできるようにする
変更・キャンセルも反映させられるよう、Forms側であとから編集可能に設定する
+α やると便利 予約状況(回答結果)を最新の回答順に並び替え
Googleスプレッドシート上の予約状況(回答結果)を最新の回答から降順に自動でソート(=並び替え)されるようにする
1.予約フォームをつくる
こちらの方のやり方で出来ます!(丸投げ)
……と言いたいところですが、本記事の対象は知識0の方向けなのでやり方をより詳しく画像つきでお送りします。
簡単すぎてくどい!と感じる方は上の方のサイトを見た方が分かりやすいかもしれません。
次に、スクリプトのタブに戻ります
これで予約フォームはできました!
2.変更・キャンセルできるようにする
Forms側で設定をします。
これで、回答の編集(別枠の予約,予約キャンセル)ができるようになりました。
ひとつ重要なことがあって、予約で埋まった選択肢の削除の反映には数秒かかるそうですので、予約が重なってしまうこともあり得ます。そのため自分でも確認するようにした方が良さそうです。
さて、ここまでで運用は可能な状態になっているはずですが、便利なので次の設定もすることをおすすめします。
+α 予約状況(回答結果)を最新の回答順に並び替え
こちらの方のやり方↓でやっていますが、うまくいかなかった部分を手直しさせてもらいましたので、ご紹介します。
以下は引用で、
function allSort() {
let data = SpreadsheetApp.getActiveSheet();
let lastRow = data.getLastRow();
let lastCol = data.getLastColumn();
data.getRange(2, 1, lastRow, lastCol).sort({column: 1, ascending: false});
}
この2行目のスプレッドシートの取得がうまくいかなかったので、
2行目のみ書き換えて
function allSort() {
let data = SpreadsheetApp.openById(spreadSheetID).getSheetByName('フォームの回答');
let lastRow = data.getLastRow();
let lastCol = data.getLastColumn();
data.getRange(2, 1, lastRow, lastCol).sort({column: 1, ascending: false});
}
これをスクリプトエディタ上で1.のスクリプトの下に貼り付けます
(補足説明:読まなくてもOKです
2行目の修正は
本記事の1.でコピペしたスクリプトで「spreadSheetID」が定義されて
いるのでそれを
「.openById(spreadSheetID)」で読み込んだうえで
「.getSheetByName('フォームの回答')」で予約状況(回答結果)の
シートを参照するようにしています)
これでスプレッドシートの「フォームの回答」上で、並び順が最新の回答から降順になります。
以上です。
私も素人なのでうまくいかなかった場合の質問には回答できませんのでご了承ください。
参考になれば幸いです!
この記事が気に入ったらサポートをしてみませんか?