ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】アルファベットや数字のフリガナをふる関数を作成する(連想配列)
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- スプレッドシートを変更した箇所の一覧を作成できます。
- GASでセルの位置を”A1″形式で取得できます。
なので、サクッとマスターして
と答えてあげてください。
動画はこちら
スクリプトはこちら
//【LogシートのGAS】
function onEdit(e) {
// function onEditfunction() {
const STARTLINE = 21 //Logシートの表示開始位置
//Log保存用シートの名前
const logSheetName = 'Log';
// スプレッドシート
let ss = SpreadsheetApp.getActiveSpreadsheet();
// スプレッドシート名
let ssName = ss.getName();
// 選択シート
let sheet = ss.getActiveSheet();
// 選択シート名
let sheetName = sheet.getName();
// Logシートなら何もしない
if (sheetName == logSheetName) {
return;
}
console.log("通過!")
// 選択セル範囲
let range = sheet.getActiveRange();
// セル範囲の行番号
let rowIndex = range.getRowIndex();
// セル範囲の列番号
let colIndex = range.getColumnIndex();
// ここでA列の値を取得
let placeval = sheet.getRange(rowIndex, 1).getValue() //現場名
console.log(placeval)
// getRange(始点行, 始点列, 取得する行数, 取得する列数)
let v = sheet.getRange(rowIndex, colIndex, 1, 1).getValue();
//内容が空
if (v == '') {
v = '※DELETE';
}
//更新者のメールアドレス
let email = Session.getActiveUser().getEmail();
//ここからLogシートに書き込み
//Log保存用シート
let logSheet = ss.getSheetByName(logSheetName);
//引数で指定した行の前の行に1行追加
logSheet.insertRowBefore(STARTLINE);
//日付
logSheet.getRange(STARTLINE, 2).setNumberFormat('yyyy/mm/dd(ddd)');
logSheet.getRange(STARTLINE, 2).setValue(new Date());
//時刻
logSheet.getRange(STARTLINE, 3).setNumberFormat('h:mm');
logSheet.getRange(STARTLINE, 3).setValue(new Date());
//更新者
logSheet.getRange(STARTLINE, 4).setValue(email);
//シート名
logSheet.getRange(STARTLINE, 5).setValue(sheetName);
//行番号
logSheet.getRange(STARTLINE, 6).setValue(rowIndex);
//列番号
logSheet.getRange(STARTLINE, 7).setValue(colIndex);
//変更セルの内容(Stringフォーマットにする)
logSheet.getRange(STARTLINE, 8).setNumberFormat('@');
logSheet.getRange(STARTLINE, 8).setValue(v);
//変更されたセルのA列の値
logSheet.getRange(STARTLINE, 9).setValue(placeval);
logSheet.getRange(STARTLINE, 10).setValue(range.getA1Notation());
}
シートはこちら
※クリックするとシートが開きます。
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】日付と時間の文字列から日時を取得する(正規表現) JavaScript
コメント