【GAS✖️Spreadsheet】業務の可視化に簡易打刻システムを作成

世の中に業務時間とか稼動時間を記録するアプリってたくさんあるけど、スプレッドシートで自分なりに作れたらいいなぁと思っていました。

自分の場合は、朝・日中・夜みたいな感じで1日に複数時間に分けて稼動することがあるので、そういった部分で記録をとれたらなぁと。

こういうのって探して見つかることも多いけど、微妙にスプレッドシートのフォーマットがずれて修正したら今度はプログラムがエラーってこともあるので自作しました。

サンプル動画

コード

const File = SpreadsheetApp.getActiveSpreadsheet();
const ss = File.getActiveSheet();

function WorkStart(){
    // B列(朝業務開始)の最終行を取得
    var lastRow = ss.getRange("b4").getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow();
    
    // 現在時刻を取得
    var now = new Date();
    now = Utilities.formatDate(now, "Asia/Tokyo", "HH:mm:ss");
    console.log(now);

    // 現在時刻を本日分のところにセット
    ss.getRange(lastRow+1,2).setValue(now);
}

function WorkStop(){
    var lastRow = ss.getRange("b4").getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow();
    var col = ss.getRange(lastRow,1).getNextDataCell(SpreadsheetApp.Direction.NEXT).getColumn();
    
    // 現在時刻を取得
    var now = new Date();
    now = Utilities.formatDate(now, "Asia/Tokyo", "HH:mm:ss");
    // console.log(now);

    // 現在時刻を本日分のところにセット
    ss.getRange(lastRow,col+1).setValue(now);
}

あとはこれをカスタムメニュー作って入れればバッチリ!!

この記事を書いた人

kumarishin