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();
}
コメント