2021/04/25

【GAS】参加しているコースのクラスコードをスプレッドシートに自動で一括出力する方法

管理者がすべてのクラスコードを一括で自動出力したい場合や、自身が参加している全コースのクラスコードを一括出力したい場合には、以下のスクリプトを実行してください。
また、ログの出力はスプレッドシートに行いますので、スクリプトはスプレッドシートのコンテナバインドスクリプトとしてください。
function listCourses() {

  const response = Classroom.Courses.list();
  const courses = response.courses;

  const array = [['コース名','クラスコード','コースセクション']]; //※1
  const enrollmentCodes = [];
  for (let i = 0; i < courses.length; i++) {

    enrollmentCodes.push([courses[i].name, courses[i].enrollmentCode, courses[i].section]); //※2
  }

  const sheet = SpreadsheetApp.getActiveSheet();
  
  const midashirange = sheet.getRange(1, 1, array.length, array[0].length);
  midashirange.setValues(array);
  const range = sheet.getRange(2, 1, enrollmentCodes.length, enrollmentCodes[0].length);
  range.setValues(enrollmentCodes);

}

※1…スプレッドシートの1行目に出力されます。出力するメソッドにあわせて修正してください。
※2…このスクリプトでは、「コース名」、「クラスコード」、「コースセクション」を出力します。
上記以外の情報を出力したい場合には、Classroom APIのリファレンスを参照の上、適宜メソッドを修正してください。

出力結果のイメージは次のとおりです。

How to output about all classcodes belonging your domain?
For example, if you are an administrator of school or member of something classroom and want to automatically output all classroom codes, to do execute the above script.
That log will be output to the spreadsheet, so please use the spreadsheet's container-bound script.