実現したいこと
Googleフォームからの時間の回答をスプレッドシートへ
スプレッドシートからGoogleカレンダーへの登録
問題
「Googleフォームからの回答をスプレッドシートへ」は完了。
「スプレッドシートからGoogleカレンダーへの登録」もほぼ完了。
しかし、
Googleフォームからの時間の回答をスプレッドシートへ
の時点でシート上では'15:00になってしまいます
例えば、プルダウン選択で15:00と答えたとします。
すると、シート上で確認すると「'15:00」となります。これではカレンダーに登録する前に、手動で「'」を消す必要があります。
どうすれば数値の最初の「'」をない状態にできますか?
下記スプレッドシートのGoogle app scriptです。
javascript
1/* カレンダーへイベントを登録する */ 2function getsheet() { 3 4 //シートの項目を以下変数定義 5 var sht, i, eventday, name, email, phoneNumber, start, end, added; 6 7 //shtを定義 8 sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1"); 9 10 //シートの2行目〜最終行まで処理を繰り返す 11 for(i = 2; i <= sht.getLastRow(); i++) { 12 13 14/*--スプレッドシートの値を取得して変数へ格納--*/ 15 16 eventday = sht.getRange(i, 6).getValue(); 17 18//開始日をUtilities.formatDateでフォーマットしてbへ格納 19 var b = Utilities.formatDate(eventday,"JST","yyyy/MM/dd"); 20 21 name = sht.getRange(i,3).getValue(); 22 23 email = sht.getRange(i,2).getValue(); 24 25phoneNumber = sht.getRange(i,4).getValue(); 26 27 var infor = email + " \n "+ phoneNumber; 28 29 var starttime = sht.getRange(i,9).getValue(); 30 31 var H = starttime.getHours(); 32 var M = starttime.getMinutes(); 33 var S = starttime.getSeconds(); 34 35//new Dateメソッドで開始日時「yyMMdd hh:mm」をstartへ格納 36 var start = new Date(b+" "+H+":"+M+":"+S); 37 38 39 var endtime = sht.getRange(i,10).getValue(); 40 41 var H1 = endtime.getHours(); 42 var M1 = endtime.getMinutes(); 43 var S1 = endtime.getSeconds(); 44 45//new Dateメソッドで終了日時「yyMMdd hh:mm」をendへ格納 46 var end = new Date(b+" "+H1+":"+M1+":"+S1); 47 48var options = { 49 description: infor 50 } 51 52/*--カレンダーへ登録--*/ 53 54 added = sht.getRange(i,14).getValue(); 55 56 57 if(added == "") { 58 Cal = CalendarApp.getCalendarById('0000@gmail.com');//<---ここを自分のgmailアドレスへ変更する 59 60 Cal.createEvent(name,start,end,options);//createEvent(タイトル、開始日時、終了日時、オプション) 61 62 sht.getRange(i,14).setValue("登録完了"); 63 64 } //ifを閉じる 65 } //forを閉じる 66} //functionを閉じる
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/09 10:16