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

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

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

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

Q&A

2回答

2668閲覧

GoogleSpreadSheetでグーグルカレンダーを管理。エラーが出ていますがわかりません。

HitomiKawasaki

総合スコア6

Google Apps Script

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

0グッド

1クリップ

投稿2018/07/02 11:41

前提・実現したいこと

GoogleSpreadSheetでグーグルカレンダーを管理。

下記二つのサイトを参考にプログラムを組み、グーグルスプレッドシートでのグーグルカレンダー管理ができるように苦戦中です。

【Googlecalendarへの追加登録】
https://xn--t8j3bz04sl3w.xyz/spreadsheet/calendar-renkei/3703/2/
【編集・自動更新設定】
http://system.blog.uuum.jp/entry/2017/03/17/110000

エラーが出てしまったのですが、何分未熟で知識がないため
どう解決すれば良いか分からず(><)
どなたかご教授頂けますと大変助かります!!

発生している問題・エラーメッセージ

構文エラー。(行 219、ファイル「コード」)

該当の箇所を◆◆◆で囲みました。

該当のソースコード

GAS

1/* カレンダーへイベントを登録する */ 2function getsheet() { 3 4/*-前準備-*/ 5 6   //シートの項目を以下変数定義 7     var sht, i, eventday, eventname, place,start, end, added; 8 9   //shtを定義 10    sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1"); 11 12   //シートの2行目〜最終行まで処理を繰り返す 13    for(i = 2; i <= sht.getLastRow(); i++) { 14 15/*-前準備ここまで-*/ 16 17 18/*--スプレッドシートの値を取得して変数へ格納--*/ 19 20//i行1列目の値(イベント日)をeventdayへ格納 21 eventday = sht.getRange(i, 1).getValue(); 22 23//開始日をUtilities.formatDateでフォーマットしてbへ格納 24 var b = Utilities.formatDate(eventday,"JST","yyyy/MM/dd"); 25 26//i行2列目の値(イベントの名前)をeventnameへ格納 27 eventname = sht.getRange(i,2).getValue(); 28 29//i行3列目の値(イベントの場所)をplaceへ格納 30 place = sht.getRange(i,3).getValue(); 31 32//i行4列目の値(開始時刻)をstartへ格納 33 var starttime = sht.getRange(i,4).getValue(); 34 35 var H = starttime.getHours();//starttimeの時間を取得してHへ格納 36 var M = starttime.getMinutes();//starttimeの時間を取得してMへ格納 37 var S = starttime.getSeconds();//starttimeの時間を取得してSへ格納 38 39//new Dateメソッドで開始日時「yyMMdd hh:mm」をstartへ格納 40 var start = new Date(b+" "+H+":"+M+":"+S);  41 42//i行5列目の値(終了時刻)をendへ格納 43 var endtime = sht.getRange(i,5).getValue(); 44 45 var H1 = endtime.getHours();//endtimeの時間を取得してH1へ格納 46 var M1 = endtime.getMinutes();//endtimeの分を取得してM1へ格納 47 var S1 = endtime.getSeconds();//endtimeの秒を取得してS1へ格納 48 49//new Dateメソッドで終了日時「yyMMdd hh:mm」をendへ格納 50 var end = new Date(b+" "+H1+":"+M1+":"+S1); 51 52 53/*--カレンダーへ登録--*/ 54 55//i行6列目の値(イベント登録有無)をaddedへ格納 56 added = sht.getRange(i,6).getValue(); 57 58//addedの値が空白だったらカレンダー登録を実行 59 if(added == "") { 60  Cal = CalendarApp.getCalendarById("hitomikawasaki.mail@gmail.com");//<---ここを自分のgmailアドレスへ変更する 61 62//指定のカレンダーIDへインベント登録 63  Cal.createEvent(eventname,start,end,{location:place});//createEvent(タイトル、開始日時、終了日時、オプション) 64 65//カレンダー登録が終わったイベントのaddedへ「登録完了」を記入 66 sht.getRange(i,6).setValue("登録完了"); 67 68  }   //ifを閉じる 69 }      //forを閉じる 70}        //functionを閉じる 71 72var ss = SpreadsheetApp.getActive(); 73var records = ss.getRange('Sheet1!A:Z').getValues(); 74 75var calApp = CalendarApp.getCalendarById('ここにカレンダーのIDを入れる'); 76calApp.createAllDayEvent('タイトル', new Date('3/14/2017')); 77 78var HashSheet = function HashSheet(sheetName) { 79 if (!sheetName) { 80 throw new Error('sheetName must be specified'); 81 } 82 this.sheetName = sheetName; 83 84 this.sheet = SpreadsheetApp.getActive().getSheetByName(this.sheetName); 85 if (!this.sheet) { 86 throw new Error('sheet does not exist'); 87 } 88}; 89 90HashSheet.prototype.destroy = function destroy() { 91 this.sheet.getRange('A:B').clear(); 92}; 93 94HashSheet.prototype.read = function read() { 95 var obj = {}; 96 var records = this.sheet.getRange('A:B').getValues(); 97 for (var i = 0; i < records.length; i++) { 98 if (records[i][0]) { 99 obj[records[i][0]] = records[i][1]; 100 } 101 } 102 return obj; 103}; 104 105HashSheet.prototype.save = function save(obj) { 106 var records = []; 107 for (var key in obj) { 108 if (!obj.hasOwnProperty(key)) { 109 continue; 110 } 111 records.push([key, obj[key]]); 112 } 113 114 this.destroy(); 115 this.sheet.getRange(1, 1, records.length, 2).setValues(records); 116}; 117 118var hashSheet = new HashSheet('sheet1'); 119var obj = hashSheet.read(); 120// 処理 121hashSheet.save(obj); 122 123var CalUtil = function CalUtil(calId) { 124 this.calApp = CalendarApp.getCalendarById(calId); 125 if (!this.calApp) { 126 throw new Error('Calendar does not exist'); 127 } 128}; 129 130CalUtil.prototype.deleteEvents = function deleteEvents() { 131 var events = this.calApp.getEvents(new Date('1/1/1970'), new Date('1/1/2100')); 132 for (var i = 0; i < events.length; i++) { 133 events[i].deleteEvent(); 134 } 135}; 136 137CalUtil.prototype.getEvents = function getEvents() { 138 var obj = {}; 139 var events = this.calApp.getEvents(new Date('1/1/1970'), new Date('1/1/2100')); 140 for (var i = 0; i < events.length; i++) { 141 obj[events[i].getId()] = events[i]; 142 } 143 return obj; 144}; 145 146var CalSheet = function CalSheet(calId, sheetName) { 147 this.calUtil = new CalUtil(calId); 148 this.hashSheet = new HashSheet(sheetName); 149 150 this.eventIds = null; 151 this.events = null; 152 153 this.sheetName = sheetName; 154}; 155 156CalSheet.prototype.deleteAll = function deleteAll() { 157 this.calUtil.deleteEvents(); 158 this.hashSheet.destroy(); 159}; 160 161CalSheet.prototype.getEventById = function getEventById(eventId) { 162 var events = this.getEvents(); 163 return events[eventId]; 164}; 165 166CalSheet.prototype.getEventByKey = function getEventByKey(key) { 167 return this.getEventById(this.getEventIdByKey(key)); 168}; 169 170CalSheet.prototype.getEventIdByKey = function getEventIdByKey(key) { 171 return this.getEventIds()[key]; 172}; 173 174CalSheet.prototype.getEventIds = function getEventIds() { 175 if (this.eventIds) { 176 return this.eventIds; 177 } 178 179 this.eventIds = this.hashSheet.read(); 180 return this.eventIds; 181}; 182 183CalSheet.prototype.getEvents = function getEvents() { 184 if (this.events) { 185 return this.events; 186 } 187 188 this.events = this.calUtil.getEvents(); 189 return this.events; 190}; 191 192CalSheet.prototype.saveEventId = function saveEventId(key, eventId) { 193 var eventIds = this.getEventIds(); 194 eventIds[key] = eventId; 195 this.hashSheet.save(eventIds); 196}; 197 198var calSheet = new CalSheet('hitomikawasaki.mail@gmail.com', 'Calendar'); 199var calApp = calSheet.cal; 200var calEvent = calSheet.getEventByKey('キー'); 201if (!calEvent) { 202 calEvent = calApp.createAllDayEvent('タイトル', new Date('3/14/2017')); 203 calSheet.saveEventId('キー', calEvent.getId()); 204} 205 206// カレンダーイベントを Spreadsheet で管理する CalSheet のインスタンス生成 207var calSheet = new CalSheet('hitomikawasaki.mail@gmail.com', 'Calendar'); 208 209// CalendarApp のインスタンス 210var calApp = calSheet.calUtil.calApp; 211 212// Spreadsheet から情報を取得 213var ss = SpreadsheetApp.getActive(); 214var records = ss.getRange('Sheet1!A:Z').getValues(); 215 216// それぞれの情報に対してカレンダーイベントの処理を行う 217for (var i = 1; i < records.length; i++) { 218 var record = records[i]; 219◆◆◆ var key = record[?]; ◆◆◆ 220 var title = record[?]; 221 var date = record[?]; 222 223 // キーとなる情報を元にカレンダーイベントを取得 224 var calEvent = calSheet.getEventByKey(key); 225 226 // カレンダーイベントが無い場合は新規作成 227 if (!calEvent) { 228 calEvent = calApp.createAllDayEvent(title, date); 229 // イベント作成後すぐに保存。スクリプトが途中で止まっても大丈夫なように 230 calSheet.saveEventId(key, calEvent.getId()); 231 } 232 233 // 234 // カレンダーイベントの中身を更新 235 // 236}

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

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

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

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

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

guest

回答2

0

var key = record[?];

こいつの後ろに全角スペースが入ってます。
それでエラーになってるんじゃないかと


改めて見てみたら他のヶ所にも盛大に全角スペースはいってますねー

投稿2018/07/02 13:58

編集2018/07/02 13:59
y_waiwai

総合スコア87774

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

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

HitomiKawasaki

2018/07/02 14:13

回答ありがとうございます。 全角スペースについては、◆をいれるときに入れましたので、実際にはスペース入っていません。 他におかしなところはみつかりませんでしょうか?
y_waiwai

2018/07/02 14:23

他の全角スペースも全部削除してみてください。 んで、実際に動かそうとしたソースを、そのままコピペして提示してくだされ
HitomiKawasaki

2018/07/02 16:24

ありがとうございます。 これです。 /* カレンダーへイベントを登録する */ function getsheet() { /*-前準備-*/    //シートの項目を以下変数定義      var sht, i, eventday, eventname, place,start, end, added;    //shtを定義     sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1");    //シートの2行目〜最終行まで処理を繰り返す     for(i = 2; i <= sht.getLastRow(); i++) { /*-前準備ここまで-*/ /*--スプレッドシートの値を取得して変数へ格納--*/ //i行1列目の値(イベント日)をeventdayへ格納  eventday = sht.getRange(i, 1).getValue(); //開始日をUtilities.formatDateでフォーマットしてbへ格納  var b = Utilities.formatDate(eventday,"JST","yyyy/MM/dd"); //i行2列目の値(イベントの名前)をeventnameへ格納  eventname = sht.getRange(i,2).getValue(); //i行3列目の値(イベントの場所)をplaceへ格納  place = sht.getRange(i,3).getValue(); //i行4列目の値(開始時刻)をstartへ格納  var starttime = sht.getRange(i,4).getValue();  var H = starttime.getHours();//starttimeの時間を取得してHへ格納  var M = starttime.getMinutes();//starttimeの時間を取得してMへ格納  var S = starttime.getSeconds();//starttimeの時間を取得してSへ格納 //new Dateメソッドで開始日時「yyMMdd hh:mm」をstartへ格納  var start = new Date(b+" "+H+":"+M+":"+S);  //i行5列目の値(終了時刻)をendへ格納  var endtime = sht.getRange(i,5).getValue();  var H1 = endtime.getHours();//endtimeの時間を取得してH1へ格納  var M1 = endtime.getMinutes();//endtimeの分を取得してM1へ格納  var S1 = endtime.getSeconds();//endtimeの秒を取得してS1へ格納 //new Dateメソッドで終了日時「yyMMdd hh:mm」をendへ格納  var end = new Date(b+" "+H1+":"+M1+":"+S1); /*--カレンダーへ登録--*/ //i行6列目の値(イベント登録有無)をaddedへ格納  added = sht.getRange(i,6).getValue(); //addedの値が空白だったらカレンダー登録を実行  if(added == "") {   Cal = CalendarApp.getCalendarById("hitomikawasaki.mail@gmail.com");//<---ここを自分のgmailアドレスへ変更する //指定のカレンダーIDへインベント登録   Cal.createEvent(eventname,start,end,{location:place});//createEvent(タイトル、開始日時、終了日時、オプション) //カレンダー登録が終わったイベントのaddedへ「登録完了」を記入  sht.getRange(i,6).setValue("登録完了");   }   //ifを閉じる  }      //forを閉じる }        //functionを閉じる var ss = SpreadsheetApp.getActive(); var records = ss.getRange('Sheet1!A:Z').getValues(); var calApp = CalendarApp.getCalendarById('hitomikawasaki.mail@gmail.com'); calApp.createAllDayEvent('タイトル', new Date('2018/07/01')); var HashSheet = function HashSheet(sheetName) { if (!sheetName) { throw new Error('sheetName must be specified'); } this.sheetName = sheetName; this.sheet = SpreadsheetApp.getActive().getSheetByName(this.sheetName); if (!this.sheet) { throw new Error('sheet does not exist'); } }; HashSheet.prototype.destroy = function destroy() { this.sheet.getRange('A:B').clear(); }; HashSheet.prototype.read = function read() { var obj = {}; var records = this.sheet.getRange('A:B').getValues(); for (var i = 0; i < records.length; i++) { if (records[i][0]) { obj[records[i][0]] = records[i][1]; } } return obj; }; HashSheet.prototype.save = function save(obj) { var records = []; for (var key in obj) { if (!obj.hasOwnProperty(key)) { continue; } records.push([key, obj[key]]); } this.destroy(); this.sheet.getRange(1, 1, records.length, 2).setValues(records); }; var hashSheet = new HashSheet('sheet1'); var obj = hashSheet.read(); // 処理 hashSheet.save(obj); var CalUtil = function CalUtil(calId) { this.calApp = CalendarApp.getCalendarById(calId); if (!this.calApp) { throw new Error('Calendar does not exist'); } }; CalUtil.prototype.deleteEvents = function deleteEvents() { var events = this.calApp.getEvents(new Date('19701/01'), new Date('2100/01/01')); for (var i = 0; i < events.length; i++) { events[i].deleteEvent(); } }; CalUtil.prototype.getEvents = function getEvents() { var obj = {}; var events = this.calApp.getEvents(new Date('1970/01/01'), new Date('210001/01')); for (var i = 0; i < events.length; i++) { obj[events[i].getId()] = events[i]; } return obj; }; var CalSheet = function CalSheet(calId, sheetName) { this.calUtil = new CalUtil(calId); this.hashSheet = new HashSheet(sheetName); this.eventIds = null; this.events = null; this.sheetName = sheetName; }; CalSheet.prototype.deleteAll = function deleteAll() { this.calUtil.deleteEvents(); this.hashSheet.destroy(); }; CalSheet.prototype.getEventById = function getEventById(eventId) { var events = this.getEvents(); return events[eventId]; }; CalSheet.prototype.getEventByKey = function getEventByKey(key) { return this.getEventById(this.getEventIdByKey(key)); }; CalSheet.prototype.getEventIdByKey = function getEventIdByKey(key) { return this.getEventIds()[key]; }; CalSheet.prototype.getEventIds = function getEventIds() { if (this.eventIds) { return this.eventIds; } this.eventIds = this.hashSheet.read(); return this.eventIds; }; CalSheet.prototype.getEvents = function getEvents() { if (this.events) { return this.events; } this.events = this.calUtil.getEvents(); return this.events; }; CalSheet.prototype.saveEventId = function saveEventId(key, eventId) { var eventIds = this.getEventIds(); eventIds[key] = eventId; this.hashSheet.save(eventIds); }; var calSheet = new CalSheet('hitomikawasaki.mail@gmail.com', 'Calendar'); var calApp = calSheet.cal; var calEvent = calSheet.getEventByKey('キー'); if (!calEvent) { calEvent = calApp.createAllDayEvent('タイトル', new Date('2018/07/01')); calSheet.saveEventId('キー', calEvent.getId()); } // カレンダーイベントを Spreadsheet で管理する CalSheet のインスタンス生成 var calSheet = new CalSheet('hitomikawasaki.mail@gmail.com', 'Calendar'); // CalendarApp のインスタンス var calApp = calSheet.calUtil.calApp; // Spreadsheet から情報を取得 var ss = SpreadsheetApp.getActive(); var records = ss.getRange('Sheet1!A:Z').getValues(); // それぞれの情報に対してカレンダーイベントの処理を行う for (var i = 1; i < records.length; i++) { var record = records[i]; var key = record[i]; var title = record[i]; var date = record[i]; // キーとなる情報を元にカレンダーイベントを取得 var calEvent = calSheet.getEventByKey(key); // カレンダーイベントが無い場合は新規作成 if (!calEvent) { calEvent = calApp.createAllDayEvent(title, date); // イベント作成後すぐに保存。スクリプトが途中で止まっても大丈夫なように calSheet.saveEventId(key, calEvent.getId()); } // // カレンダーイベントの中身を更新 // }
guest

0

Javascript

1for (var i = 1; i < records.length; i++) { 2 var record = records[i]; 3 var key = record[i]; 4 var title = record[i]; 5 var date = record[i]; 6}

この部分ですが、このforで指定されているiは行数を指しています。
そのため、recordはスプレッドシートの各行の配列です。
よって、key, title, dateに指定されている配列番号には列番号を指定する必要があります。

おそらく固定だと思いますので、key, title, dateが入っている列番号をそれぞれ記入してやればいいと思います。

投稿2018/07/03 01:34

macaron_xxx

総合スコア3191

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

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

HitomiKawasaki

2018/07/03 13:14

ありがとうございます! 該当箇所を変更してみました。 以下のようになったのですが、今度はまた違うエラーが出ました。 デバッグ?というボタンを押してみたら、いろいろと出てきました。 追加で質問申し訳ないですが、もしわかるようでしたらお教えいただけると幸いです。 /* カレンダーへイベントを登録する */ function getsheet() { /*-前準備-*/    //シートの項目を以下変数定義      var sht, i, eventday, eventname, place,start, end, added;    //shtを定義     sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1");    //シートの2行目〜最終行まで処理を繰り返す     for(i = 2; i <= sht.getLastRow(); i++) { /*-前準備ここまで-*/ /*--スプレッドシートの値を取得して変数へ格納--*/ //i行1列目の値(イベント日)をeventdayへ格納  eventday = sht.getRange(i, 1).getValue(); //開始日をUtilities.formatDateでフォーマットしてbへ格納  var b = Utilities.formatDate(eventday,"JST","yyyy/MM/dd"); //i行2列目の値(イベントの名前)をeventnameへ格納  eventname = sht.getRange(i,2).getValue(); //i行3列目の値(イベントの場所)をplaceへ格納  place = sht.getRange(i,3).getValue(); //i行4列目の値(開始時刻)をstartへ格納  var starttime = sht.getRange(i,4).getValue();  var H = starttime.getHours();//starttimeの時間を取得してHへ格納  var M = starttime.getMinutes();//starttimeの時間を取得してMへ格納  var S = starttime.getSeconds();//starttimeの時間を取得してSへ格納 //new Dateメソッドで開始日時「yyMMdd hh:mm」をstartへ格納  var start = new Date(b+" "+H+":"+M+":"+S);  //i行5列目の値(終了時刻)をendへ格納  var endtime = sht.getRange(i,5).getValue();  var H1 = endtime.getHours();//endtimeの時間を取得してH1へ格納  var M1 = endtime.getMinutes();//endtimeの分を取得してM1へ格納  var S1 = endtime.getSeconds();//endtimeの秒を取得してS1へ格納 //new Dateメソッドで終了日時「yyMMdd hh:mm」をendへ格納  var end = new Date(b+" "+H1+":"+M1+":"+S1); /*--カレンダーへ登録--*/ //i行6列目の値(イベント登録有無)をaddedへ格納  added = sht.getRange(i,6).getValue(); //addedの値が空白だったらカレンダー登録を実行  if(added == "") {   Cal = CalendarApp.getCalendarById("hitomikawasaki.mail@gmail.com");//<---ここを自分のgmailアドレスへ変更する //指定のカレンダーIDへインベント登録   Cal.createEvent(eventname,start,end,{location:place});//createEvent(タイトル、開始日時、終了日時、オプション) //カレンダー登録が終わったイベントのaddedへ「登録完了」を記入  sht.getRange(i,6).setValue("登録完了");   }   //ifを閉じる  }      //forを閉じる }        //functionを閉じる var ss = SpreadsheetApp.getActive(); var records = ss.getRange('Sheet1!A:Z').getValues(); var calApp = CalendarApp.getCalendarById('hitomikawasaki.mail@gmail.com'); calApp.createAllDayEvent('タイトル', new Date('2018/07/01')); var HashSheet = function HashSheet(sheetName) { if (!sheetName) { throw new Error('sheetName must be specified'); } this.sheetName = sheetName; this.sheet = SpreadsheetApp.getActive().getSheetByName(this.sheetName); if (!this.sheet) { throw new Error('sheet does not exist'); } }; HashSheet.prototype.destroy = function destroy() { this.sheet.getRange('A:B').clear(); }; HashSheet.prototype.read = function read() { var obj = {}; var records = this.sheet.getRange('A:B').getValues(); for (var i = 0; i < records.length; i++) { if (records[i][0]) { obj[records[i][0]] = records[i][1]; } } return obj; }; HashSheet.prototype.save = function save(obj) { var records = []; for (var key in obj) { if (!obj.hasOwnProperty(key)) { continue; } records.push([key, obj[key]]); } this.destroy(); this.sheet.getRange(1, 1, records.length, 2).setValues(records); }; var hashSheet = new HashSheet('sheet1'); var obj = hashSheet.read(); // 処理 hashSheet.save(obj); var CalUtil = function CalUtil(calId) { this.calApp = CalendarApp.getCalendarById(calId); if (!this.calApp) { throw new Error('Calendar does not exist'); } }; CalUtil.prototype.deleteEvents = function deleteEvents() { var events = this.calApp.getEvents(new Date('19701/01'), new Date('2100/01/01')); for (var i = 0; i < events.length; i++) { events[i].deleteEvent(); } }; CalUtil.prototype.getEvents = function getEvents() { var obj = {}; var events = this.calApp.getEvents(new Date('1970/01/01'), new Date('210001/01')); for (var i = 0; i < events.length; i++) { obj[events[i].getId()] = events[i]; } return obj; }; var CalSheet = function CalSheet(calId, sheetName) { this.calUtil = new CalUtil(calId); this.hashSheet = new HashSheet(sheetName); this.eventIds = null; this.events = null; this.sheetName = sheetName; }; CalSheet.prototype.deleteAll = function deleteAll() { this.calUtil.deleteEvents(); this.hashSheet.destroy(); }; CalSheet.prototype.getEventById = function getEventById(eventId) { var events = this.getEvents(); return events[eventId]; }; CalSheet.prototype.getEventByKey = function getEventByKey(key) { return this.getEventById(this.getEventIdByKey(key)); }; CalSheet.prototype.getEventIdByKey = function getEventIdByKey(key) { return this.getEventIds()[key]; }; CalSheet.prototype.getEventIds = function getEventIds() { if (this.eventIds) { return this.eventIds; } this.eventIds = this.hashSheet.read(); return this.eventIds; }; CalSheet.prototype.getEvents = function getEvents() { if (this.events) { return this.events; } this.events = this.calUtil.getEvents(); return this.events; }; CalSheet.prototype.saveEventId = function saveEventId(key, eventId) { var eventIds = this.getEventIds(); eventIds[key] = eventId; this.hashSheet.save(eventIds); }; var calSheet = new CalSheet('hitomikawasaki.mail@gmail.com', 'Calendar'); var calApp = calSheet.cal; var calEvent = calSheet.getEventByKey('キー'); if (!calEvent) { calEvent = calApp.createAllDayEvent('タイトル', new Date('2018/07/01')); calSheet.saveEventId('キー', calEvent.getId()); } // カレンダーイベントを Spreadsheet で管理する CalSheet のインスタンス生成 var calSheet = new CalSheet('hitomikawasaki.mail@gmail.com', 'Calendar'); // CalendarApp のインスタンス var calApp = calSheet.calUtil.calApp; // Spreadsheet から情報を取得 var ss = SpreadsheetApp.getActive(); var records = ss.getRange('Sheet1!A:Z').getValues(); // それぞれの情報に対してカレンダーイベントの処理を行う for (var i = 1; i < records.length; i++) { var record = records[i]; var key = record[A]; var title = record[B]; var date = record[C]; // キーとなる情報を元にカレンダーイベントを取得 var calEvent = calSheet.getEventByKey(key); // カレンダーイベントが無い場合は新規作成 if (!calEvent) { calEvent = calApp.createAllDayEvent(title, date); // イベント作成後すぐに保存。スクリプトが途中で止まっても大丈夫なように calSheet.saveEventId(key, calEvent.getId()); } // // カレンダーイベントの中身を更新 // }
HitomiKawasaki

2018/07/03 13:17

キャプチャはここ添付できないんですね・・・ コピペしたらものすごく読みにくくなってしまいます。どうしたらいいのでしょう?
macaron_xxx

2018/07/03 23:59

追記修正するか、新たに質問を作成してください。 また、エラー内容は全て記載するようにしてください。 (いちいち実行するわけではないので)
macaron_xxx

2018/07/04 00:52

ちなみに、配列にA,B,Cと指定されていますが、1,2,3のように列番号を指定してくださいね。 (そもそも配列、ご存知ないですか??)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問