GASとスプレッドシートで複数のクラスルームを作成

GASとスプレッドシートでクラスルームを作成

GASとスプレッドシートで複数のクラスルームを作成する方法です。

複数のクラスルームを一気に作る方法をまだ書いていませんでしたので、あらためて記事を作成しました。

中身があまり変わらないのであれば1つ作ったものをコピーするほうが効率的です。でも、GASで作る方法を押さえておくと、後に複数のクラスルームを管理することになった際には、とても役に立ちます。

スプレッドシートの準備

スプレットシートを開きます。まずシート名を「クラスルームを作成する」とします。スクリプトでこの名前で呼び出しています。

入力する項目は以下の通りです。ボタンから実行したいので1列目は開けて、「挿入」ー「図形描画」からボタンを作成して設置しています。ボタンのメニューから、「スクリプトを割り当て」でスクリプトを割り当てます。

buttonnamesectiondescriptionownerIdcourseStateroom
クラス名(必須)セクションクラスの説明部屋
スプレッドシートの項目

実際に入力したものが以下です。「ownerId」は「me」、「courseSate」は「PROVISIONED」と入力します。

GASとスプレッドシートでクラスルームを作成 スプレッドシート
シート名「クラスルームを作成する」

クラスルームの詳細に、以下のように入力されます。「科目」については、スクリプトからは入力できないようです。

GASとスプレッドシートでクラスルームを作成 クラスの詳細
クラスの詳細

スクリプトの入力

今回は、スプレッドシートに紐づいた「コンテナバインドスクリプト」を使用します。スプレッドシートの「拡張機能」のメニューから「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とスプレッドシートでクラスルームを作成

まとめ

最初にも書きましたが、GASでクラスルームを作ってみると色々な気づきがあり、のちの管理にも役に立ちます。1つ作るだけならば手動のほうが絶対的に早くすみますが、興味のある方はぜひチャレンジすることをお勧めします。

以前の記事と重複する部分も出るかと思いますが、見直しも含めて、もう一度GASで一からクラスルームを作っていきたいと思います。