実用GAS(自分の)CASE1:時間取得


利用用途

指定した行(例としてE列)に文字が入った時間を取得して好きな行に日付、時間を入れる(例はA列に日付、B列に時間を入れる



function onEdit(e) {  
 //1=A列、2=B列のように何列に文字がはいったら時間を取得するか(例:5=E列で一旦置いとく)
 var Example = 5
 //入力イベントからシートを取得
 var ss = e.source.getActiveSheet();
 // 変更行
 var row = e.range.getRow();
 // 変更列
 var col = e.range.getColumn();
 
 Logger.log("シート名:" + ss.getName());
 Logger.log("変更行:" + row);
 Logger.log("変更列:" + col);
 Logger.log(e);
 
 //○○○○○以外のシートの入力は扱わない(アクティブなシートのみで使う)
 if(ss.getName() !== "○○○○○"){
   return;  
 }
 //Exampleの入った列以外の入力は扱わない
 if(col != Example){
   return;
 }
   
 var day     = Utilities.formatDate(new Date(), "JST", "MM/dd");
 var time    = Utilities.formatDate(new Date(), "JST", "HH:mm");
 ss.getRange(row,1).setValue(day);
 ss.getRange(row,2).setValue(time);
 
 Logger.log("onEdit end")
}


画像バージョン

画像2

解説?

3行目

var Example = 5


Exampleにはその時の変数宣言を入れる、そしてその宣言5行目に何か文字が入ったら、時間が入る。

16行目~18行目

 //○○○○○以外のシートの入力は扱わない(アクティブなシートのみで使う)
 if(ss.getName() !== "○○○○○"){
   return;  

ここの○○○○○は、下記画像の「シート1」のみに有効であり他のシート限定という意味。

画像3

実際に、立ち上げ~実務開始までの短期PJが多かったので入電記録のほとんどがこのスクリプトを応用して作ってた。

また、自分たちがタッチできない時間帯の更新も何時に更新があったかを確認して、応対件数や応対傾向の分析の元として活用。


この記事が気に入ったらサポートをしてみませんか?