見出し画像

#101 課題の提出状況を一覧で出力する(Google Classroom の「採点」タブを出力)


どんなプログラム

今回のプログラムは、職場で質問された以下のような質問に対応するための
ものです。

Google Classroom で課題を出して採点すると、その結果は「採点」タブで確認できますが、この内容を書き出すことはできませんか?

職場で質問された内容

それぞれの課題については、株式会社ストリートスマートの「MASTER EDUCATION」でも説明されているように、スプレッドシートや CSV ファイルに書き出せるのですが、すべての課題についてまとめて出力する機能は、現時点では備えられていないように認識しています。点数のみが出力され、提出状況などがわからないので、その辺りも出力するプログラムを作ってみました。

こういった不都合に感じるところを、何とかできるのが GAS のいいところだと思います。 と言うことで、プログラムを作成してみました。 

作成したプログラム

作成した GAS のプログラムは、下図のような Google スプレッドシートに埋め込んであります。

作成した Google スプレッドシート+ GAS

このスプレッドシートは、以下 URL にアクセスして、画面右上の「テンプレートを使用」ボタンを押すと、自身の Google にコピーを作成できます。

プログラムをはじめて実行する際には、アカウントによる確認作業が必要になります。詳しくは以下の投稿をご覧ください。

操作手順

  1. 「参加クラスの取得」ボタンを押します。

    • 初回実行時は、権限の確認を求められるので、対象のクラスにアクセスできるアカウントで認証してください。

    • この処理が実行されると、セル D2 のドロップダウンリストに教師として参加しているクラスが選択できるようになります。

  2. セル D2 で対象となるクラスを選択します。

  3. 一覧にする課題の順序を、セル D5 で指定します。

  4. 「採点の一覧 作成」ボタンを押すと、当該クラスの採点の一覧が別シートに作成されます。
    ※シート名は、実行した日時とクラス名から設定されます。

実際に出力された結果は、以下のような感じになります。それぞれの課題について、「提出状況」と「採点結果」が別の列で出力されます。

出力された課題の一覧

プログラムを実行している状況は、スプレッドシートの右下に下図のように表示するようにしています。しかしながら、課題数やクラスに参加している生徒数によっては、処理が終了するまでに相応の時間がかかってしまいます。こればかりは仕方がないので、お待ちください…

プログラムを実行している状況

注意事項

成績の元データになる情報だとも考えられたため、いつも以上に注意してプログラムを作成しましたが、お使いになる場合には、ご自身でも確認は行ってください。

  • いろいろな状況でテストを行ったつもりですが、実行する環境(クラスに所属する生徒の数、作成されている課題の数)によっては、すべての結果が表示されない場合があるかもしれません。出力された一覧は、よく確認してください。

  • 前項の図にあるように、4行目以降に当該クラスに参加している生徒が一覧で出力されます。この順序は API が出力した順序のままとなっています。手作業で都合の良い順序に並び替えてください。

  • 「採点」タブで表示されている平均点は出力していません。必要であれば、スプレッドシートで関数を手作業で追加してください。

プログラムの誤りなどがあれば、ご連絡ください。可能な範囲で対応したいと思います。

最後に

このような質問(要望)が寄せられるというのは、Google Classroom が授業で利用されるようになってきた結果なんだろうな、と思ってプログラムを作成してみました。
本当はこういった機能も、Google Classroom 自身が備えてくれているといいのでしょうが、結局のところ、校務支援システムとの橋渡しをどのようにするかはそれぞれなので、ひとまず一覧として出力できるようになると便利かな?と思っています。

最後に、お決まりのフレーズなどを書いておきます。

  • 一応の動作確認は行っているものの、不慮のトラブルによって損害等が生じても、責任はとれませんので予めご了承ください。

  • コメントを含めても 280行くらいのスクリプトであり、実行に際して目的外の場所への書き出しや収集などは行っていません。

  • 特別なエラー処理は行っていないので、意図しないケースでエラーが発生してしまうかもしれません。どうにもならない場合には、ご連絡ください。

わたし自身にしてみると、このような「スクリプトを作ること」が目的になっているような感じですが、このスクリプトが何かの役に立てば幸いです。
「スキ ♡」を押してもらえると、このようなプログラム作成の励みになります。😍

この記事が気に入ったらサポートをしてみませんか?