GASとスプレッドシートでトピックを作成
GASとスプレッドシートでクラスルームにトピックを作成します。
前回に引き続き、GASでクラスルームを作成していきます。今回は、トピックを作成しています。
スプレッドシートの準備
前回作ったスプレッドシートに、新しいシートを作成します。シート名は「トピックを作成する」とします。
今回は、スプレッドシートの2列目に対象のクラスルームのcourseId、3列目にトピック名を列挙します。図形描画で挿入したボタンに、スクリプトを割り当てています。
courseIdの確認は、下の記事を参照してください。スクリプトで確認することができます。
例として10週分のトピックを降順で入力しています。前にも説明していますが、シートの上から作成され、クラスルームは作られた順に下から並び、最終的に昇順で並びます。クラスルームに降順で並べたい場合には、シートに昇順で入力しましょう。
また、courseIdは書式が指数と認識されエラーになりますので、数字部分を選択して「書式なし」に変更します。
スクリプトの準備
「拡張機能」のメニューから「Apps Script」を開き、「+」からスクリプトを追加します。名前は「createTopics」としています。下記のスクリプトを入力します。
// クラスルームにトピックを作成する
function createTopics() {
const activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = activeSpreadSheet.getSheetByName("トピックを作成する");
const values = sheet.getDataRange().getValues();
values.shift();
const array = values;
for (let i in array) {
const courseId = array[i][1];
const topic = {
name: array[i][2]
}
const createTopic = Classroom.Courses.Topics.create(topic, courseId);
Logger.log('Topic created: %s (%s)', topic.name, topic.topicId);
}
}
スクリプトの実行
シートに戻り、ボタンからスクリプトを実行します。クラスルームを見ると、第1週から 第10週のトピックが並んでいます。
まとめ
今回はトピックの作成をご紹介しました。このあたりも、手動で入力するのと手間は同じですが、以前に作ったトピックの原稿を使いまわしたり、複数のクラスルームに作成するようなケースではGASを使うとスピードアップがはかれるのではないでしょうか。