現在、以下の手順で会議室の予約システムを社内で作成しています。
Formからユーザが予約を行う。(Formの質問内容:名前、メールアドレス、日程、開始時間、終了時間、イベント名、どの場所を利用するか)
Formで登録するとスプレッドシートで一覧化され、スプレッドシートからカレンダーへ登録を行うようにし、ユーザーはカレンダーを確認しながら空いている日程をFormから予約します。
Formで予約があったにも関わらず、後にキャンセルがあった場合、スプレッドシートのキャンセル欄にキャンセルを受け付けた人の名前を入力すると、そのキャンセル依頼があったイベントをカレンダーから削除する設定を考えています。
しかし、【events.deleteEvent();】を実行しても削除が反映されず、エラーメッセージで以下が表示されます。
「TypeError: オブジェクト CalendarEvent で関数 deleteEvent が見つかりません。」
原因が不明のため、一度こちらが作成したスクリプトをご確認いただけないでしょうか。
また、登録したイベントの色を変更したいのですが、同じように
「TypeError: オブジェクト CalendarEvent で関数 setcolor が見つかりません。」のメッセージが表示されます。
function color8() { var Ash = SpreadsheetApp.getActiveSheet(); var rng = Ash.getActiveCell(); var row_num = rng.getRow(); var flag = rng.getValue(); var cals = CalendarApp.getCalendarById("カレンダーID"); var id = Ash.getRange(row_num,3).getValue(); var stime = new Date(Ash.getRange(row_num, 7).getValue()); var etime = new Date(Ash.getRange(row_num, 8).getValue()); var ndate = new Date(Ash.getRange(row_num, 6).getValue()); var ndates= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),stime.getHours(),stime.getMinutes(),0); var ndatee= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),etime.getHours(),etime.getMinutes(),0); var events=cals.getEvents(ndates, ndatee); if (rng.getColumn()==19 && id!="" ){ var yourSelections = Browser.msgBox("スケジュールを削除しますか? ",Browser.Buttons.OK_CANCEL); events.deleteEvent(); if(yourSelections == "ok"){ Browser.msgBox("削除しました"); } else if ( yourSelections == "cancel" ){ rng.clearContent(); Browser.msgBox("削除を中止しました"); } } }
回答1件
あなたの回答
tips
プレビュー