【GAS】変更した箇所の一覧を作成する(Gスプレッドシート)

応用

GAS応用の一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】アルファベットや数字のフリガナをふる関数を作成する(連想配列)
  • GAS(Javascriptにおける)連想配列の基本的な使い方がわかります。
  • 数字およびアルファベットのフリガナをふる関数が作れます。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    • スプレッドシートを変更した箇所の一覧を作成できます。
    • GASでセルの位置を”A1″形式で取得できます。

     

    なので、サクッとマスターして

    と答えてあげてください。

    動画はこちら

    【GAS】Googleスプレッドシート テンプレ変更箇所の一覧を自動的に作成する方法

     

     

     

    スクリプトはこちら

    //【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
  • JavaScriptで正規表現の使い方がわかります。
  • 文字列の日時からGoogleカレンダーに設定する日時が作成できます。
  • GAS応用の一覧

    コメント

    タイトルとURLをコピーしました