*PC初心者が試行錯誤した備忘録なので、ご意見もいただければと思います!
【やりたいこと】
生徒の人数が多くて出欠をとるのが大変…!
⇩
生徒が配布されたQRコードを、教卓の上のタブレットにかざすと、自動でエクセルに出席が登録されるようにできないか
【使うもの】
・Googleスプレッドシート
・タブレット(QRコード読み取り機能つき)
準備 スプレッドシートを用意し、GASを開く
「拡張機能」のタグ → 「Apps Script」に入る
Try① シートに自動で文字(“出”)が入力されるようにする
function doGet(e) {
var spreadSheet = SpreadsheetApp.openByUrl(‘ ① ’);
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getSheetByName(“ ② ”)
sheet.getRange(‘ ③ ’).setValue(‘ ④ ’);
}
①シートのurl・②シート名を入力
③入力したい場所・④入力ワード
D列の5行目に「出席」と入力したい
↓①~④を入力すると
↓「実行」を押すと
↓「権限を承認」を押す
このように自動的に入力されています!
【課題】
・毎回D5のセル(「1/1」の下)にしか入力できない!
↓
・毎回入力するセルを自動で移動させられないか?
Try② 自動で行の最後を取得して入力する
function doGet(e) {
var spreadSheet = SpreadsheetApp.openByUrl(‘https://docs.google.com/spreadsheets/d/16_DoMqggTanaG0aJYyErr4BdWCkmTTH7R5oCc6KDd4E/edit#gid=0’);
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getSheetByName(“あ”)
var lastColumn = sheet.getRange(1,1).getNextDataCell(SpreadsheetApp.Direction.NEXT).getColumn()
for(var i=lastColumn;i>=2;i–){
var range = sheet.getRange(5,i);
sheet.getRange(5,i).setValue(“出”)
break;
}
}
*Column=列 Row=行
↓実行
そこじゃない・・・!
Try③ 入力してある次の行を取得して入力する
function doGet(e) {
var spreadSheet = SpreadsheetApp.openByUrl(‘https://docs.google.com/spreadsheets/d/16_DoMqggTanaG0aJYyErr4BdWCkmTTH7R5oCc6KDd4E/edit#gid=0’);
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getSheetByName(“あ”)
var lastColumn = sheet.getLastColumn()// 最後の列を取得
for(var i=lastColumn;i>=2;i–){
var range = sheet.getRange(5,i); // 取得する範囲を取得
var j = i + 1;
sheet.getRange(5,j).setValue(“出席”)
break;
}
}
↓実行!
↓もう一度、実行!
【課題】
入力してある列の次の行は取得しているけど…
・日付のところに入力してほしい…
↓
・入力してある“次”ではなく、入力してある行にすれば!
Try④ 完成!!(とりあえず…)
function doGet(e) {
var spreadSheet = SpreadsheetApp.openByUrl(‘https://docs.google.com/spreadsheets/d/16_DoMqggTanaG0aJYyErr4BdWCkmTTH7R5oCc6KDd4E/edit#gid=0’);
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getSheetByName(“あ”)
var lastColumn = sheet.getLastColumn()// 最後の列を取得
for(var i=lastColumn;i>=2;i–){
var range = sheet.getRange(5,i); // 取得する範囲を取得
sheet.getRange(5,i).setValue(“出席”)
break;
}
}
↓実行!
日付を入力してある下に、「出席」が入力される
【課題】
・毎日自分で日付を手入力で更新しておく必要がある
・6行目以降も1つ1つ作成していく必要がある
コピーして全員分を作成
↓コピーを作成で、行数だけ変更していく
urlの作成
「デプロイ」→「新しいデプロイ」
↓
↓「ウェブアプリ」
ひとまず、「Googleアカウントを持つ全員」にしました
↓「デプロイ」
urlをコピーして完了!
あとはurlをQRコード化できる以下のサイトを使ってQRコードを作成
QRコード作成【無料】URLをQRコードに (quel.jp)
↓
QRコードを印刷して配布
活用のために毎朝の準備
①シートの日付を更新しておく
②タブレットでシートを開いておく必要があります
③タブレットでQRコード読み取りカメラを起動
あとはタブレットを入口などにおいておけばOK!
まだまだ不完全ですが、さらに改良を重ねていきたいと思います!