こんにちは。福田泰裕です。
中学校や高校では、朝のSHRに英単語テストや漢字テストを行う学校が多いと思います。
テスト前になると単語帳を使って勉強しますが、
覚えたつもりだけど、ちゃんと点が取れるのか不安…
と思う生徒が多いです。
それは、テストで点を取るためにはインプットだけでなくアウトプットの練習が重要だからです。
アウトプットの練習が不足した状態でテストに臨むと、
なんとなく覚えたつもりだったけど、問題を前にしたらまったく手が動かなかった…
ということが起こるのです。
教員の中には、生徒のために自習用のプリントを作成して印刷しているという方もいることでしょう。
しかし、プリントの作成には時間がかかります。
さらにそのプリントを何度も繰り返し解いてしまえば、問題の配置を覚えてしまい演習の効果が薄れていきます。
そこで今回は、スプレッドシートからGoogleフォームのテストを自動作成する方法をご紹介します!
最後まで読んでいただけると嬉しいです。
目次
まず、何ができるのかご紹介します。
スプレッドシートに、英単語とその意味を入力しておきます👇
タイトル、説明、問題数、選択肢数、配点を設定して右側の「並べ替え&テスト作成」ボタンを押すと…👇
テストが自動作成されます。
誤答選択肢も、スプレッドシートからランダムに選択して作成します。
さらに、フィードバックの文章も自動作成します。
1つ1つ手作業で入力すると膨大な時間がかかりますが、これを使えばとても簡単です。
それでは、ファイルを配布します。
スプレッドシートなので、Googleアカウントにログインした状態でアクセスしてください👇
アクセスしたら、左上の「ファイル」をクリック👇
開いたメニューから「コピーを作成」をクリック👇
保存するファイルの名前と場所を選んで「OK」をクリック👇
これで、自分のGoogleドライブにスプレッドシートのコピーが作成されます。
それでは、このスプレッドシートの使い方を紹介します。
1~5行目のタイトル、説明、問題数、選択肢数、配点は自由に設定してください。
7行目以降には、英単語とその意味を入力していきます。
A列の番号は管理用(並べ替えをした後、元に戻すために必要)で、
D列の「乱数」はランダムに出題するため並べ替えのために必要です。
これらは適宜追加したり、削除したりする必要があります。
英単語を追加するためには、まず問題を番号順に並べなおす必要があります。
(すでに番号順になっている場合は、この作業は必要ありません。)
右側の「番号順に並べなおす」ボタンをクリック👇
これで、英単語をA列の番号順に並べなおすことができます👇
並べなおしたら、英単語を追加していきます。
スプレッドシートは、EXCELから表をコピーして貼り付けることも可能です。
自分で入力してもよいし、すでにEXCELに入力しているならそちらをコピペしても構いません。
ただし英単語を追加する際は、単語と意味だけでなく、必ずA列とD列もオートフィルで追加してください。
まず、単語とその意味を入力します👇
次に、A列の番号をオートフィルで追加します。
連番にしたいので、Ctrlキーを押しながらオートフィルを行います👇
同様にして、D列の乱数もオートフィルで追加します👇
このように、英単語を追加する場合はA列の番号とD列の乱数も忘れずに追加してください。
英単語を削除する方法をご紹介します。
削除したい範囲を選択します。
この際、A列の番号とD列の乱数もすべて選択してください👇
Deleteキーを押して、削除します👇
たったこれだけです。
A列の番号やD列の乱数が残るとおかしなことになるので、忘れずに削除してください。
いよいよGoogleフォームへ出力です。
出力には、右側のボタンを使います。
ボタンは3種類あります。
1番上の「並べ替え&テスト作成」をクリックすると、ランダムで並べ替えを行い、上から『指定した問題数』をGoogleフォームに出力します👇
また、「テスト作成」をクリックすると、クリックしたときの状態で、上から『指定した問題数』をGoogleフォームに出力します👇
出題したい問題が決まっているときは、こちらの方が有効です。
目的に応じて使い分けてください。
初回のみ、作成ボタンを押した際に『Googleアカウントの許可』が必要になります。
実行ボタンを押すと「スクリプトを実行しています」と出た後、次のような画面が表示されます。
ビックリしますが、左下の「詳細」をクリックします👇
次に、一番下の「安全ではないページに移動」をクリック👇
最後に右下の「許可」をクリック👇
この操作の後、もう一度スプレッドシートに戻って「実行ボタン」を押すと、Googleフォームが作成できるようになると思います。
処理が終了したら、Googleドライブのホーム画面にGoogleフォームが出力されているはずです。
この作成されたGoogleフォームを開き、一応確認しておきましょう。
Googleフォームを開き、最後の設定を行います。
右上の設定(歯車のマーク)をクリック👇
上の項目から「テスト」をクリックし、
成績の表示を「送信直後」、回答者が表示できる項目のすべてにチェック✅を入れ、「保存」をクリック👇
これで無事完成です!
この成績の表示を「送信直後」、回答者が表示できる項目のすべてにチェックを入れるところは、どれだけ調べてもGASで設定する方法が見つかりませんでした😥
もしご存知でしたら、コメント欄より教えてください。
完成したテストを、生徒へ配布しましょう!
まずは右上の「送信」をクリック👇
上の項目から「リンク」をクリックし、「URLを短縮」にチェック✅を入れ、「コピー」をクリック👇
これで、Googleフォームへのリンクがコピーできました。
あとはこのURLをGoogleClassroomに貼り付けたり、メールで送信したり、QRコードにしてプリントに貼り付けたり…
自由に配布して、授業やテスト対策に活用してください!
この私が作成した英単語テスト自動作成ファイルが、Youtubeチャンネル「GIGAch」さんによって紹介されました。
このファイルの使い方や、使用する際の注意点について、とても丁寧に詳しく解説されています。
ぜひ併せてご覧ください👇
いかがでしたでしょうか。
今回は「英単語テスト自動作成」としてご紹介しましたが、もちろん英単語以外にも利用できます。
例えば国語科なら漢字の読み、熟語の意味、社会科なら単語の意味、出来事の年号‥‥‥
一問一答形式であれば何でも利用できるため、汎用性が高いです。
生徒たちにとって…特に高校では、日々の授業は基本的にインプットばかり。
アウトプットが圧倒的に不足した状態でテスト本番を迎えることがよくあります。
こうしたアウトプットが不足した生徒たちに対して大量に問題を作成してあげることができれば、生徒もアウトプットの機会を増やすことができます。
さらに教師にとっても負担が少ないので、両者にとってメリットが大きいと思います。
ぜひ、あなたの勤務校でテスト対策に革命を起こしてください。
最後まで読んでいただき、ありがとうございました!
質問やご意見、ご感想などがあればコメント欄にお願いします👇
View Comments
右3つのボタンを押そうとすると、「あなたの承認が必要です」と出ます。
ログインをし、サードパーティーの変更のところを見てもよく分かりません。
もし、お分かりでしたら教えて下さい。
「このアプリは確認されていません」でしょうか?
左の「詳細」をクリックすれば、実行するためのボタンが現れる…かもしれません。
何度試してみても、「アクセス権をリクエスト」と出て進めません。
ぜひ利用したいので、方法があれば教えてください。
自分のGoogleドライブへコピーを作成して、そのコピーしたスプレッドシートでもアクセス権のリクエストが表示されますか?
県から配布されたGoogleaccountでは無理だったようです。プライベート用のアカウントでやるとできました!
ありがとうございます!
GIGAchのものをさらにイジって改良版を作ってみました。フォームの設定変更が不要になっています。
一度見ていただきたいのですが、どのようにお知らせしたら良いでしょうか?
TypeError: Cannot read property '2' of undefined 詳細
と表示され、G.FORMが形成されません。どうしたら良いでしょうか
失礼します。
私も同じ現象に行きあたっていました。
100問から100問出すような作り方をするとうまくいかないようです。
100問から50問、100問から80問のような出し方だとスクリプトを実行してくれるようです。80問までは実験済みです。100問から99問とかになるとわかりません…。
こんばんは!中学校教員です!スクリプトエディタのソースコードがわかれば教えていただきたいです。
※他のところに掲載されてるのがうまくいきませんでした、、
スプレッドシートのツールバーで「拡張機能」→AppsScriptをクリックすると、スクリプトが表示されます。
週ごとに1~10、11~20とテストする範囲を変えて作成したいのですが、そういったことは可能でしょうか?方法があれば教えていただきたいです。
私も同じです。
隣に問題シートを挿入して、問題シートの方にデータを作っておきます。
テスト作成時は、必要な問題だけをコピペして、連番とランダム関数を入れて作成しています。
これで、スクリプトを変更せずにできそうです。
こんなものが欲しかったというところに手が届く、とても良いプログラムだと思います。公開していただきありがとうございます。
コードを拝見させていただいたところ、
バグを発見しましたので、ご報告させていただきます。
◆該当箇所
random()、sortA()関数において、
89行目:sheet.getRange(7, 1, lastRow, lastCol).sort(4);
96行目:sheet.getRange(7, 1, lastRow, lastCol).sort(1);
という部分です。
Sheetの最終行まで単語を追加すると、エラーが出ます。
getRangeで7+lastRow-1行目、1+lastCol-1列までを範囲取得するため、Sheetが存在しない場合はエラーとなるからです。
◆修正案
89行目:sheet.getRange(7, 1, lastRow-7+1, lastCol-1+1).sort(4);
96行目:sheet.getRange(7, 1, lastRow-7+1, lastCol-1+1).sort(1);
としてみたらどうでしょうか?
よろしくお願いいたします。
大変便利で活用させていただいております。
ところでときどき「TypeError: Cannot read property '2' of undefined」という表示が出て問題が出力されないことがあります(一度出てその後しばらく使わず、しばらくして開いたらまたエラーがでなくなったので再度使いはじめ、また最近このエラーが出るようになった)。とくにソースをいじった覚えはないのですが、どうしたら直るでしょうか。
いつもブログ,Twitterを拝見しております。
私の勤める自治体ではGoogleがはじかれます。マイクロソフトのFormsを使っているのですが,同じようなことはできますか?
単語は何個まで追加できますか?
できれば無限に追加できたら楽ですが不可能でしょうか?
プログラムは指示があれば書き換えることはできます。