GASとスプレッドシートでトピックを作成

GASとスプレッドシートでトピックを作成 トピック

GASとスプレッドシートでクラスルームにトピックを作成します。

前回に引き続き、GASでクラスルームを作成していきます。今回は、トピックを作成しています。

スプレッドシートの準備

前回作ったスプレッドシートに、新しいシートを作成します。シート名は「トピックを作成する」とします。

今回は、スプレッドシートの2列目に対象のクラスルームのcourseId、3列目にトピック名を列挙します。図形描画で挿入したボタンに、スクリプトを割り当てています。

courseIdの確認は、下の記事を参照してください。スクリプトで確認することができます。

例として10週分のトピックを降順で入力しています。前にも説明していますが、シートの上から作成され、クラスルームは作られた順に下から並び、最終的に昇順で並びます。クラスルームに降順で並べたい場合には、シートに昇順で入力しましょう。

また、courseIdは書式が指数と認識されエラーになりますので、数字部分を選択して「書式なし」に変更します。

GASとスプレッドシートでトピックを作成 スプレッドシート
スプレッドシートの構成

スクリプトの準備

「拡張機能」のメニューから「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とスプレッドシートでトピックを作成 作成後
クラスルームに作成されたトピック

まとめ

今回はトピックの作成をご紹介しました。このあたりも、手動で入力するのと手間は同じですが、以前に作ったトピックの原稿を使いまわしたり、複数のクラスルームに作成するようなケースではGASを使うとスピードアップがはかれるのではないでしょうか。