最速怪談選手権

祭日を取得し曜日を赤くする設定です
アカウントAでは正しく動作していましたが
アカウントBへスプレッドシートを移動(共有ーオーナー変更)
したらエラーが出てしまいます
//⑦土日祝日を赤文字にする
function isHoliday_(date) {
// // ①土日の判定
const day = date.getDay(); //曜日取得
if (day === 0 || day === 6) return true;

// ②祝日の判定
const id = 'ja.japanese#holiday@group.v.calendar.google.com'
Logger.log(id)
const cal = CalendarApp.getCalendarById(id);
Logger.log(date)
const events = cal.getEventsForDay(date);
//なんらかのイベントがある=祝日
if (events.length) return true;
}
Logger.log(id)には「ja.japanese#holiday@group.v.calendar.google.com」
Logger.log(date)には「Tue May 04 00:00:00 GMT+09:00 2021」
が入っています
「date」は別関数から
var date1=sh_save.getRange(2,col_6).getValue();
var hantei=isHoliday_(date1);
にて日付を投げています
エラーは「TypeError: Cannot read property 'getEventsForDay' of null」で
「const events = cal.getEventsForDay(date);」の.getEvants・・・に対して
指示しています

以上よろしくお願いします

A 回答 (1件)

カレンダーが共有されていないのではないでしょうか?



・カレンダーidで指定されているカレンダーが存在していない(移動後のID間違い)
・カレンダーを購読していない
・カレンダーへのアクセス権限がない

■他のユーザーの Google カレンダーに登録する
 https://support.google.com/calendar/answer/37100 …
    • good
    • 0
この回答へのお礼

ありがとうございます
その通りでした!

実は 新しいアカウントを作り
そちらへコードをコピペし
シートも内容を同じにして作成して試したのですが
同じ症状になったので ??? となっていました
新しいアカウントでカレンダーを立ち上げてみたら
正しく動作するのが確認できました


勉強になりました  感謝しています

お礼日時:2021/05/12 09:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!