GoogleAppsScript(GAS)

《GAS》編集履歴ソース

Googleスプレッドシートに書き込みがあったら履歴を保存用シートに書き込む。

function onMyEdit(e) {
 //Log保存用シートの名前
 var logSheetName = 'Log';
 
 // スプレッドシート
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 // スプレッドシート名
 var ssName = ss.getName();
 
 // 選択シート
 var sheet = ss.getActiveSheet();
 // 選択シート名
 var sheetName = sheet.getName();
 // Logシートなら何もしない
 if (sheetName == logSheetName) {
  return;
 }
 
 // 選択セル範囲
 var range = sheet.getActiveRange();
 // セル範囲の行番号
 var rowIndex = range.getRowIndex();
 // セル範囲の列番号
 var colIndex = range.getColumnIndex();
    // 選択セルのA列目の内容を書込み
 var rowIndex2 = sheet.getRange(rowIndex, 5).getValue();
    // 選択セルの3行目の内容を書込み
 var colIndex2 =  sheet.getRange(3, colIndex).getValue();
 
 // getRange(始点行, 始点列, 取得する行数, 取得する列数)
 var v = sheet.getRange(rowIndex, colIndex, 1, 1).getValue();
 //内容が空
 if (v == '') {
  v = '※削除';
 }
 
 //更新者のメールアドレス
 var email = Session.getActiveUser().getEmail();
 
 //ここからLogシートに書き込み
 //Log保存用シート
 var logSheet = ss.getSheetByName(logSheetName);
 //引数で指定した行の前の行に1行追加
 logSheet.insertRowBefore(2);
 
 //日付
 logSheet.getRange(2, 1).setNumberFormat('yyyy/mm/dd(ddd)');
 logSheet.getRange(2, 1).setValue(new Date());
 //時刻
 logSheet.getRange(2, 2).setNumberFormat('h:mm:ss');
 logSheet.getRange(2, 2).setValue(new Date());
 //更新者
 logSheet.getRange(2, 3).setValue(email);
 //シート名
 logSheet.getRange(2, 4).setValue(sheetName);
 //行番号
 logSheet.getRange(2, 5).setValue(rowIndex2);
 //列番号
 logSheet.getRange(2, 6).setValue(colIndex2);
 //変更セルの内容(Stringフォーマットにする)
 logSheet.getRange(2, 7).setNumberFormat('@'); 
 logSheet.getRange(2, 7).setValue(v);
}

-GoogleAppsScript(GAS)

Copyright© フリーランスSEノート , 2021 All Rights Reserved.