0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

問題提起

私の高校では小テストをGoogle Formsで行っている。しかし私はある点に憤慨している。
それは毎回のテストで学籍番号を入力しなければならないことだ。これはデジタルの良さを完全に消している。
テストのたびに番号を間違えないように言われるが人間は愚かなのだ。間違えるに決まっている。

小テストを作成するときにこのような作りにしている学校も多いのではないのか?

この記事のゴールはメールアドレスから学籍番号を取得するGoogle Apps Scriptを作成することである。
これが完成すれば他のサービスでも学籍番号を取得ができるようになる。

環境

この記事では以下のサービスを利用する。

  • Google Apps Script
  • Google Sheets

解決策

1. 学籍番号を記録するスプレッドシートを作成する

まずは学籍番号を記録するスプレッドシートを作成する。
以下の画像のようにAの列に学籍番号をBの列にメールアドレスを記録する。

Sheet.png

2. Google Apps Scriptを作成する

次にGoogle Apps Scriptを作成する。
Google Apps ScriptはGoogleのサービスを自動化するためのスクリプト言語である。

  1. 拡張機能 -> Google Apps Scriptを選択する。
    GoogleAppButton.png

  2. 以下のスクリプトを作成する。

function searchStudentCode(email) {
  // ここを変更するとどのシートでも動作します。
  const SPREADSHEET_ID = "1PYtXAVw_YC7QLCD16G9yeAxamUbnBpwhWsN3jRZ0cdA";
  const SHEET_NAME = "シート1";
  //====================================================================

  // GoogleスプレッドシートをIDで開く
  var sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME);

  // シートからすべてのデータを取得
  var data = sheet.getDataRange().getValues();

  // データをループしてメールを見つけ、対応する学籍番号を返す
  var studentId = "";
  for (var i = 0; i < data.length; i++) {
    if (data[i][1] == email) {
      studentId = data[i][0].toString();
      break;
    }
  }

  // 学籍番号を返す
  return studentId;
}

// 上の関数が動くかどうか確かめる
function testSearchStudentCode(e) {
  var email = "aaa@gmail.com";
  var studentId = searchStudentCode(email);
  Logger.log(studentId);
}

このコードのtestSearchStudentCodeを実行すると、A列にある学籍番号が取得できる。

  const SPREADSHEET_ID = "1PYtXAVw_YC7QLCD16G9yeAxamUbnBpwhWsN3jRZ0cdA";
  const SHEET_NAME = "シート1";

この部分は自身のスプレッドシートのIDとシート名に変更する。
IDとは
ID.png
スプレッドシートのURLの中にある「/d/」と「/edit」の間の文字列である。

シート名とは左下のタブに表示されている名前である。
SheetName.png

上部のタブにある実行を押すと許可が求められるので許可する。
Tab.png

3. 動作を確認する

Test.png

このようにtestSearchStudentCodeを実行すると学籍番号が取得できる。
emailを変更することで他のメールアドレスの学籍番号も取得できるので確認してみてほしい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?