Google App Script(GAS)でスプレッドシートを使ってGoogle Classroomに課題を作る

Google App Script(GAS)でスプレッドシートを使ってGoogle Classroomに課題を作る 実行結果

Google App Script(GAS)でスプレッドシートを使って、Google Classroomに課題を作成します。

前回は、GASを使って課題を1つ作ってみるというのをやりました。今回は、複数の課題を一気に準備するため、スプレッドシートを使って課題作成をしていきます。

GASで課題を作成する手順

スクリプトの説明です。前回は、プロパティーごと、コード内に入力していましたが、今回はこの部分をスプレッドシートから読み込みます。

各プロパティーの説明です。

  • title: 課題のタイトルです
  • description: 課題の詳細です
  • materials: 今回はドライブからドキュメントを添付し、生徒にコピーを配布します
  • state: 課題のステータス、draftとします
  • maxPoints: 課題の点数に入る数字です
  • workType: 課題のタイプ、ASSIGNMENTを入力して課題とします
  • topicId: 課題を投稿したいトピックを指定します
  • fileId: 配布するファイルのIdです

2行目の「Id」にデータを読み込むスプレッドシートの Id、下から4行目にコースIDを入力します。

ファイルの Idは以下で確認できます。

Google App Script(GAS)でスプレッドシートを使ってクラスに招待をする スプレッドシートid

コースIDは以下を参照してください。

「Google App Script(GAS)でクラスの courseIdを確認する方法」

function createCourseWorkSpreadsheet() {
    var sheet = SpreadsheetApp.openById('Id');
    var values = sheet.getDataRange().getValues();
    values.shift();
    var array = values;
    for (var i in array) {
        var assignment = {
            title: array[i][0],
            description: array[i][1],
            materials: [{
                "driveFile": {
                    "driveFile": {
                        "id": array[i][7]
                    },
                    "shareMode": 'STUDENT_COPY',
                }
            }],
            state: array[i][2],
            maxPoints: array[i][3],
            workType: array[i][4],
            topicId: array[i][5],
        }
        var assignment = Classroom.Courses.CourseWork.create(assignment, 'courseId')
        Logger.log('CourseWork created: %s (%s)', assignment.title, assignment.workType)
    }
}

スプレッドシートを用意する

スプレッドシートを用意します。一番上の行に項目を設定し、下にプロパティーの内容を入れていきます。項目は、左から以下の順です。

  • title
  • description
  • state
  • maxPoint
  • workType
  • topicId
  • link url
  • fileId

link urlは、外部リンクを添付する際に使用できます。今回は空欄にしています。

Google App Script(GAS)でスプレッドシートを使ってGoogle Classroomに課題を作る スプレッドシート

スクリプトを実行する

準備ができたら、スクリプトを実行してみましよう。「保存」ボタンで保存したら「実行」ボタンで実行します。

Google App Script 操作方法

実行ログです。7週分の課題が6秒で設定できました。

Google App Script(GAS)でスプレッドシートを使ってGoogle Classroomに課題を作る 実行ログ

クラスを開いてみます。各週ごとに課題が設定されているのがわかります。

Google App Script(GAS)でスプレッドシートを使ってGoogle Classroomに課題を作る 実行結果

まとめ

トピックの設置までは、あまり大きなメリットを感じませんでしたが、課題をGASで設定してみると、スクリプトで実施するメリットを十分に感じられます。

手動で行うと登録に時間がかかるだけでなく、操作ミスなどで手戻りが発生することも多くありました。スクリプトでは、早く正確な操作ができるところがいいですね。

次回からは、課題のバリエーションをいろいろと試していきたいと思います。