質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1104閲覧

【events.deleteEvent();】エラーメッセージ原因解決策

yoyoy

総合スコア14

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2019/11/05 04:25

編集2019/11/05 05:46

現在、以下の手順で会議室の予約システムを社内で作成しています。

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("削除を中止しました"); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/11/05 04:27

実行環境はGoogle Apps Scriptで間違いないですか?
yoyoy

2019/11/05 04:33

Google Apps Scriptで間違いないです。
m.ts10806

2019/11/05 05:25

タイトルが質問ではなく作業依頼に近い内容になっています。 Google Apps Scriptであればタグがあるので追加し、コードはマークダウンのcode機能を利用してください
yoyoy

2019/11/05 05:46

初めての質問のため、色々と不備があり、大変失礼致しました。 ご指摘頂きましてありがとうございます。
guest

回答1

0

ベストアンサー

getEvents()は複数のイベントが返ってくる可能性があるため、配列として返ってきます。
そのため、events[0].deleteEvent()のようにする必要があります。

投稿2019/11/05 07:49

macaron_xxx

総合スコア3191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoyoy

2019/11/07 05:56

events[0].deleteEvent() にすることにより、解決致しました。 また、イベントカラーの変更もevents[0].setcolor() にすることにより解決致しました。 大変助かりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問