前提・実現したいこと
GASをこれから覚えて使用したいと思っている初心者(昨日初めて触ったので無知識です。申し訳ありません。)です。
googleカレンダーの内容をスプレッドシートに出してデータポータルにつなぎスケジュールの可視化をしようと考えているのですが
googleカレンダーを取得してスプレッドシートに出力するスクリプトをインターネットサイトで公開されていたものを利用したのですがエラーが出てしまいました。
63行目ということで
for each(var evt in myEvents){
の部分と思うのですがどのように修正すればよいのか全く分かりません。
どなたかご教示いただけませんでしょうか。
よろしくお願いいたします。
発生している問題・
googleカレンダーを取得してスプレッドシートに出力するスクリプトをインターネットサイトで公開されているものを使って作ったのですがエラーが出てしまい出力ができませんでした。
エラーメッセージ SyntaxError: Unexpected identifier(行 63、ファイル「コード.gs」) ### 該当のソースコード /* 指定月のカレンダーからイベントを取得する */ function getCalendar() { // フォルダ、ファイル関係の定義 var targetFolderIds = ["スプレッドのフォルダID"]; var targetFolder; var folderName; var objFiles; var objFile; var fileName; // スプレッドシート関係の定義 var ss; var key; var sheets; var sheetId; for (var i = 0; i < targetFolderIds.length; i++) { // Idから対象フォルダの取得 targetFolder = DriveApp.getFolderById(targetFolderIds[i]); folderName = targetFolder.getName(); // 対象フォルダ以下のSpreadsheetを取得 objFiles = targetFolder.getFilesByType(MimeType.GOOGLE_SHEETS); while (objFiles.hasNext()) { objFile = objFiles.next(); fileName = objFile.getName(); // Spreadsheetのオープン ss = SpreadsheetApp.openByUrl(objFile.getUrl()); key = ss.getId(); sheets = ss.getSheets(); } } /*スプレッドシートをクリア*/ var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getActiveSheet(); var range = sheet.getRange(1,1,400,5); range.clear(); /*列名を入力*/ var range = sheet.getRange("A1").setValue("No."); var range = sheet.getRange("B1").setValue("カテゴリ"); var range = sheet.getRange("C1").setValue("内容"); var range = sheet.getRange("D1").setValue("開始時刻"); var range = sheet.getRange("E1").setValue("終了時刻"); var range = sheet.getRange("F1").setValue("所要時間"); var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得 var no=1; //No var myCal=CalendarApp.getCalendarById('自分のGmail'); //特定のIDのカレンダーを取得 var startDate=new Date('2018/08/20 00:00:00'); //取得開始日 var endDate=new Date('2018/10/01 00:00:00'); //取得終了日 var myEvents=myCal.getEvents(startDate,endDate); //カレンダーのイベントを取得 /* イベントの数だけ繰り返してシートに記録 */ for each(var evt in myEvents){ mySheet.appendRow( [ no, //No evt.getTitle(), //イベントタイトル evt, evt.getStartTime(), //イベントの開始時刻 evt.getEndTime(), //イベントの終了時刻 "=INDIRECT(\"RC[-1]\",FALSE)-INDIRECT(\"RC[-2]\",FALSE)" //所要時間を計算 ] ); no++; } /* 列分解 */ var lastRow = sheet.getLastRow(); for(i=2;i <= lastRow;i++){ var x = sheet.getRange(i,2); var y = sheet.getRange(i,11); // 使っていないセルを取得 var z = sheet.getRange(2,3,lastRow-1,1); z.clearContent(); y.setValue(x.getValue()); x.clearContent(); strformula = "=split(K" + i + ",\"/\")"; x.setFormula(strformula); } /* 所要時間の[ss]表示 */ var secondTime = '[ss]'; for(i=2;i <= lastRow;i++){ var numberRange=sheet.getRange(i,6,lastRow); numberRange.setNumberFormat( secondTime ); } /* 週番号の追加 */ var x=sheet.getRange(1,7); var y=sheet.getRange(1,8); var z=sheet.getRange(1,9); var w=sheet.getRange(1,10); x.setValue('週番号'); y.setValue('日にち'); z.setValue('所要時間(hh:mm)'); w.setValue('曜日'); var NumFormats = '0'; for(i=2;i <= lastRow;i++){ var x=sheet.getRange(i,7); var y=sheet.getRange(i,8); var z=sheet.getRange(i,9); var w=sheet.getRange(i,10); weeknum = "=WEEKNUM(D" + i + ")"; x.setFormula(weeknum); x.setNumberFormat( NumFormats ); daynum = "=day(D" + i + ")"; y.setFormula(daynum); hhmm = "=TEXT(F" + i + ",\"hh:mm\")"; z.setFormula(hhmm); week = "=TEXT(D" + i + ",\"ddd\")"; w.setFormula(week); } /* シートを追加し、値とフォーマットのペースト */ var sheet2 = spreadsheet.insertSheet("data"); sheet.getRange("A:I").copyTo(sheet2.getRange("A:I"), {formatOnly:true}); //sheet.getRange("A:I").copyTo(sheet2.getRange("A:I"), {contentsOnly:true}); } ### 試したこと 何がいけないのか調べたのですが無知識で全く分かりませんでした。 (自分のメールアドレスと、スプレッドのフォルダIDのところは実際はきちんとしたものを入力しています。)
回答1件
あなたの回答
tips
プレビュー