Google App Script(GAS)でスプレッドシートを使ってトピックを作る

Google App Script createTopicSpreadsheet 昇順 クラス

Google App Script(GAS)でスプレッドシートを使ってトピックを作成します。

前回の記事では、スクリプトに書き込んだ複数の「トピック」を連続して作成する手順をご紹介しました。

Google App Script(GAS)でGoogle Classroomに連続でトピックを作る

しかし、「トピック」のタイトルが長くなってくると、スクリプトに書きにくかったり、スクリプト自体を管理しづらくなる可能性があります。

そこで今回は、スプレッドシートに入力した「トピック」名から、GASを使って「トピック」を作成する手順をご紹介します。

スプレッドシートを使ったトピックの作成手順

1.新規でスプレッドシートを作成します。タイトルは任意です。1行目に「トピック名」のタイトル、2行目以降に各トピックのトピック名を入力します。前回の記事でも書いたように、スクリプトの作成順とクラスでの表示は順番が逆になりますので注意します。今回は、クラスで「第1週」から表示されるように、「第7週」から作成しています。

Google App Script createTopicSpreadsheet スプレッドシート

2. スプレッドシートが完成したら、「id」を確認します。以下のように、スプレッドシートのURLにある「/d/」の後から「/edit」の手前までの赤枠の部分が、スプレッドシートのIdです。

Google App Script createTopicSpreadsheet Id

3. GASのエディターを開き、「ファイルの追加」をして、以下のスクリプトを入力します。

エディターについてはこちらの記事を参照してください。「Google ClassroomをGoogle App Script(GAS)で操作する

2行目の「courseId」にトピックを作成するクラスの「courseId」を入力します。3行目カッコ内の「Id」にスプレッドシートの「Id」を入力します。

対象クラスの「courseId」の確認方法はこちら

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

function createTopicSpreadsheet() {
    var courseId = 'courseId';
    var sheet = SpreadsheetApp.openById('Id');
    var values = sheet.getDataRange().getValues();
    values.shift();
    var array = values.flat();
    for (var i in array) {
        var topic = {
            name: array[i]
        }
        var topic = Classroom.Courses.Topics.create(topic, courseId);
        Logger.log('Topic created: %s (%s)', topic.name, topic.topicId)
    }
}

3. 入力したら「保存」ボタンで保存し、「実行」ボタンで実行します。「Ctrl (MacはCommand) + S」で保存し、「Ctrl(Command) + R」で実行できます。

Google App Script 操作方法

4. 正常に終了すると、実行ログに「実行完了」と表示されます。「Topic created」の右側のカッコ内には、トピック固有の「topicId」が表示されます。控えておくと、この後の作業に利用できます。

Google App Script createTopicSpreadsheet 昇順 実行ログ

5. クラスを開いてみると、トピックが昇順で並んでいることが確認できます。

Google App Script createTopicSpreadsheet 昇順 クラス

ちなみに、スプレッドシートに昇順で書いて実行すると、

Google App Script createTopicSpreadsheet 降順 実行ログ

クラスにはトピックが降順で並びます。

Google App Script createTopicSpreadsheet 降順 クラス

まとめ

スプレッドシートで作成することで、スクリプトがシンプルになる利点があります。また、1つスクリプトがあれば、スプレッドシートのIdを書き換えるだけで、いくつかのパターンにも対応できます。便利に使えますので、ぜひご活用ください。

参考: Google Classroom API リファレンス