GASとスプレッドシートで複数のクラスルームを作成
GASとスプレッドシートで複数のクラスルームを作成する方法です。
複数のクラスルームを一気に作る方法をまだ書いていませんでしたので、あらためて記事を作成しました。
中身があまり変わらないのであれば1つ作ったものをコピーするほうが効率的です。でも、GASで作る方法を押さえておくと、後に複数のクラスルームを管理することになった際には、とても役に立ちます。
スプレッドシートの準備
スプレットシートを開きます。まずシート名を「クラスルームを作成する」とします。スクリプトでこの名前で呼び出しています。
入力する項目は以下の通りです。ボタンから実行したいので1列目は開けて、「挿入」ー「図形描画」からボタンを作成して設置しています。ボタンのメニューから、「スクリプトを割り当て」でスクリプトを割り当てます。
button | name | section | description | ownerId | courseState | room |
クラス名(必須) | セクション | クラスの説明 | 部屋 | |||
実際に入力したものが以下です。「ownerId」は「me」、「courseSate」は「PROVISIONED」と入力します。
クラスルームの詳細に、以下のように入力されます。「科目」については、スクリプトからは入力できないようです。
スクリプトの入力
今回は、スプレッドシートに紐づいた「コンテナバインドスクリプト」を使用します。スプレッドシートの「拡張機能」のメニューから「Apps Script」を開きます。
左側の「サービス」のメニューの「+」から、「Google Classroom API」を追加しておきましょう。以下のスクリプトを入力します。
// クラスルームを作成する
function createCourses() {
const activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = activeSpreadSheet.getSheetByName('クラスルームを作成する');
const values = sheet.getDataRange().getValues();
values.shift();
const array = values;
for (let i in array) {
const assignment = {
name: array[i][1],
section: array[i][2],
description: array[i][3],
ownerId: array[i][4],
courseState: array[i][5],
room: array[i][6],
}
const course = Classroom.Courses.create(assignment);
Logger.log('Course created: %s (%s)', course.name, course.id);
}
}
スクリプトを実行する
スクリプトが完成したら、シートを開いてボタンから実行してみましょう。一気に5つのクラスが作成される様は壮観です。それぞれ「承諾」をしておきましょう。
まとめ
最初にも書きましたが、GASでクラスルームを作ってみると色々な気づきがあり、のちの管理にも役に立ちます。1つ作るだけならば手動のほうが絶対的に早くすみますが、興味のある方はぜひチャレンジすることをお勧めします。
以前の記事と重複する部分も出るかと思いますが、見直しも含めて、もう一度GASで一からクラスルームを作っていきたいと思います。