Google Classroom などから Google Form を使ってテストを受けさせるのは,日常となりました.しかし,多くの場合,テストだから,受検機会は1回だけということが多いのではないでしょうか?
しかし,ある時ふと思ったのです.このくらいのレベルの問題であれば,いちいち次回の授業時に解説の機会を設けるのではなく,自分が納得するまで繰り返し問題を解かせた方が効果的ではないかと.解説を聞いても,依然としてよく分かっていない人がおり,期末試験で全体を通した総合的な問題を解かせると,やっぱり理解できていないことが判明するのです.こういったことを無くすには,もしかすると,100点になるまで繰り返し解かせる方が,自分で納得でき,よい結果を生むかもしれないと考えました.
そこで,そのようにGoogle Formを設定してみました.設定自体は簡単です.
「正解」は表示しない(オフにする).
「回答の編集」は許可しない(オフにする)
「回答を1回に制限」しない(オフにする)
基本的には,これでよいはずです.
ところが,学生たちから「1回しか解答できない」というメッセージが届きました.調べてみると,確かに「解答委を1回に制限する」がオンになっています.おかしいな? ちゃんと設定したはずだけど,と思いながら,オフにしました.とりあえず,それで何とかなったようでした.
また,次の回.同様に設定し,今度は確実に「回答を1回に制限」しないように,オフにしました.ところが,再び,1回しか解答できないと言われ,また,同様のことを繰り返しました.
調べてみると,どうも,そういう仕様らしいということがわかってきました.
何とか修正する方法はないだろうか?
AIに相談しながら,以下のような方法を発見しました.
以下のようなコードを使います.
| // 解答が自動的に1回に制限する状態に変わるとき,5分おきに状態をチェックして,変化があればオフにするスクリプト // Apps Scriptを開いて,以下のコードを貼り付ける // FORM_IDを毎回書き換えること var FORM_ID = ‘適宜変更‘; function fixFormSettings() { var form = FormApp.openById(FORM_ID); form.setLimitOneResponsePerUser(false); Logger.log(‘設定を修正しました: ‘ + new Date()); } function setupTrigger() { var triggers = ScriptApp.getProjectTriggers(); for (var i = 0; i < triggers.length; i++) { ScriptApp.deleteTrigger(triggers[i]); } ScriptApp.newTrigger(‘fixFormSettings’) .timeBased() .everyMinutes(5) .create(); Logger.log(‘トリガーを登録しました’); } // 変更後は,Ctrl+S でsaveし,setupTriggerにカーソルを持っていって,実行する. // エラーが出なければOK. |
上のコードの「適宜変更」部分にフォームのIDを入れます.フォームのIDとは,Google FormのURL https://docs.google.com/forms/d/[these characters]/edit# …の中で,/d/から/edit#に囲まれた部分([these characters]部分)のことです.
そうして,上のコード全体をコピーします.
Google Formに戻り,右上あたりにある縦の・・・部分をクリックして,Apps Scriptを選びます.すると,画面が切り替わります.
その画面では,数行のコードがデフォルトで書かれていますが,これを消して,コピーした上のコードを貼り付けます.
Ctrl + SでSaveします.
そして,function setupTrigger() { 部分にカーソルを置いて「実行」ボタンを押します.エラーが出なければ,それでOKです.
もう一度 Ctrl + SでSaveします.
これで,どこかで自動的に1回に制限する状態(オン)に変わった時に,5分おきにチェックして,変化があればオフにできます.間隔の調整は,.everyMinutesの部分でできます.
これで解決できました!
Enjoy!!