Googleスプレッドシートにタイムスタンプを作る。(Google Apps Script)
Googleスプレッドシートにチェックボックスを挿入し、チェックされた時に時間が出るようにしたいという要望があった。
GoogleAppsScriptによって設定していく。
チェックボックスに✓をいれると、右隣のセルに、「時:分:秒」が表示されるレイアウト用
- 拡張機能 ⇒ Apps Script を開く
- コード.js に記載されている以下の記述を全て消す。
function myFunction() {
}
- 以下のスクリプトを貼り付ける。
/** 変更箇所あり ↓ */
// function myFunction () {
// setStamp ( "シート名" , [ "タイムスタンプを押す列", "タイムスタンプを押す列", ..... ] );
// }
function myFunction () {
setStamp ( "シート1" , [ "D", "F", "H" ] );
}
/** 変更箇所なし ↓ */
function setStamp(sheetName, stamp) {
const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZAAABAC";
const indexArry = stamp.map(x => alphabet.indexOf(x));
const done = true;
const undone = false;
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
const range = sheet.getActiveRange();
const col = range.getColumnIndex();
const value = range.getValue();
const currentTime = Utilities.formatDate(new Date(), "Asia/Tokyo", "HH:mm:ss");
if (indexArry.includes(col) && SpreadsheetApp.getActiveSheet().getName() == sheetName) {
if (value == done) {
range.offset(0, 1).setValue(currentTime);
return;
}
if (value == undone) {
range.offset(0, 1).setValue("");
return;
}
}
}
/** ここまでコピぺ ↑ */
- プロジェクトを保存する
- ▶実行 ボタンを押し、エラーがないことを確認する(※初めての実行時に「承認が必要です」と出たら許可していく)
- トリガーを設定する。(スプレッドシートから、編集時)