トリガーの作成

NK225チャート

function updateStockData()の実行をこれまでは手動でやっていましたが、自動的に平日17時に実行するようなプログラムを作成します

毎日17時に実行するだけならGASのトリガーで簡単に設定できますが、土日祝日をスキップするとなると一手間必要になってきます

そこで以下の記事を参考にさせていただきました

Google Apps Scriptで営業日を判定してトリガーを作成する方法
Google Apps Scriptで営業日のみトリガーを作成する方法をお伝えします。Googleカレンダーにデフォルトである祝日のカレンダーを使用する方法と、会社独自の営業日に対応する方法をお伝えします。

functionsetTrigger()に土日祝日をスキップするプログラムを追加し、以下のようにしてみました
うまく作動するか様子を見ます

function isBusinessDay(date){
  
  if (date.getDay() == 0 || date.getDay() == 6) {
    return false;
  }
  
  const calJa = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com');
  if(calJa.getEventsForDay(date).length > 0){
    return false;
  }
  return true;
  
}

function setTrigger(){

  const time = new Date();
  time.setHours(17);
  time.setMinutes(00);

  if (isBusinessDay(date)){
  ScriptApp.newTrigger('myFunction').timeBased().at(time).create();
  }

}

function delTrigger() {

  const triggers = ScriptApp.getProjectTriggers();
  for(const trigger of triggers){
    if(trigger.getHandlerFunction() == "myFunction"){
      ScriptApp.deleteTrigger(trigger);
    }
  }
  
}

function myFunction(){
  
  delTrigger();

  updateStockData();
  copyLastRow();
}

コメント

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