teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

設定時間超のコード追加

2019/11/15 04:58

投稿

KPS
KPS

スコア8

title CHANGED
File without changes
body CHANGED
@@ -56,4 +56,50 @@
56
56
  lastR = lastR + 1;
57
57
  }
58
58
  }
59
+ ```
60
+ 上記のは完成いたしました。
61
+ ありがとうございます。
62
+ 178時間を超えたらラインする(超えない場合は作動しない)というGASがラインは送信してるのすが、コードがうまくいきません。
63
+ よろしくお願いいたします。スプレッドシート内は
64
+ 名前 時間
65
+ ①   0
66
+ ②   0
67
+ ③   0
68
+ ④   0 
69
+ ⑤   0
70
+ と記入されてるシートしか使っておりません。
71
+ ```
72
+ var today = new Date();
73
+ var date = new Date(today.getFullYear(), today.getMonth(), 1);
74
+
75
+
76
+ function myFunction() {
77
+
78
+ var sheet = SpreadsheetApp.getActiveSpreadsheet();
79
+ var sheet = SpreadsheetApp.openById("スプレッドシートID");
80
+ var sheet = Spreadsheet.getSheetByName("就業")
81
+
82
+ var range = sheet.getRange("A2:B8");
83
+ Logger.log(range.getValues());
84
+
85
+
86
+
87
+
88
+ }
89
+
90
+
91
+
92
+ // LINE notifyへの通知
93
+ function sendHttpPost(content){
94
+ var token = "ライントークン";
95
+ var options =
96
+ {
97
+ "method" : "post",
98
+ "payload" : "message=" + content,
99
+ "headers" : {"Authorization" : "Bearer "+ token}
100
+
101
+ };
102
+
103
+ UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
104
+ }
59
105
  ```

2

コードの修正をしました。

2019/11/15 04:58

投稿

KPS
KPS

スコア8

title CHANGED
File without changes
body CHANGED
@@ -8,76 +8,52 @@
8
8
  エラーが出ているのは一番上の所です。
9
9
  その月の1日からカレンダーを取得して次の月に入った時はクリアーにしたいのです。
10
10
 
11
+ ```
11
- var date = DATE(YEAR(TODAY()),MONTH(TODAY()),1);
12
+ var date = DATE(YEAR(TODAY()),MONTH(TODAY()),1);
12
-
13
- var sheet = SpreadsheetApp.getActiveSpreadsheet();
13
+ var sheet = SpreadsheetApp.getActiveSpreadsheet();
14
-
15
- var calendarId = sheet.setActiveSheet(sheet.getSheetByName("Calendar_ID"));
14
+ var calendarId = sheet.setActiveSheet(sheet.getSheetByName("Calendar_ID"));
16
-
17
- var calendarItem = sheet.setActiveSheet(sheet.getSheetByName("Calendar_Item"));
15
+ var calendarItem = sheet.setActiveSheet(sheet.getSheetByName("Calendar_Item"));
18
-
19
-
20
- function getId(){
16
+ function getId(){
21
-
22
- calendarItem.clear();
17
+ calendarItem.clear();
23
-
24
- calendarItem.getRange('A'+(1)).setValue('カレンダーID');
18
+ calendarItem.getRange('A'+(1)).setValue('カレンダーID');
25
- calendarItem.getRange('B'+(1)).setValue('タイトル');
19
+ calendarItem.getRange('B'+(1)).setValue('タイトル');
26
- calendarItem.getRange('C'+(1)).setValue('開始時刻');
20
+ calendarItem.getRange('C'+(1)).setValue('開始時刻');
27
- calendarItem.getRange('D'+(1)).setValue('終了時刻');
21
+ calendarItem.getRange('D'+(1)).setValue('終了時刻');
28
- calendarItem.getRange('E'+(1)).setValue('所要時間');
22
+ calendarItem.getRange('E'+(1)).setValue('所要時間');
29
-
30
-
31
-
32
- var lastR1 = calendarId.getLastRow();
23
+ var lastR1 = calendarId.getLastRow();
33
- Logger.log("【lastR】:" + lastR1);
24
+ Logger.log("【lastR】:" + lastR1);
34
-
35
-
36
- for (var i = 1; i < lastR1 ; i++){
25
+ for (var i = 1; i < lastR1 ; i++){
37
-
38
- var lastR2 = calendarItem.getLastRow();
26
+ var lastR2 = calendarItem.getLastRow();
39
- Logger.log("【lastR】:" + lastR2);
27
+ Logger.log("【lastR】:" + lastR2);
40
-
41
-
42
- var calId = calendarId.getRange('A'+(i+1)).getValue();
28
+ var calId = calendarId.getRange('A'+(i+1)).getValue();
43
- Logger.log('【calId】' + calId);
29
+ Logger.log('【calId】' + calId);
44
- getCal(calId,lastR2);
30
+ getCal(calId,lastR2);
45
- }
46
31
  }
47
-
32
+ }
48
33
  function getCal(id,lastR) {
49
- Logger.log('【id】' + id);
34
+ Logger.log('【id】' + id);
50
- Logger.log('【lastR】' + lastR);
35
+ Logger.log('【lastR】' + lastR);
51
-
52
- var calendar = CalendarApp.getCalendarById(id);
36
+ var calendar = CalendarApp.getCalendarById(id);
53
-
54
-
55
- var from= new Date(date); 
37
+ var from= new Date(date); 
56
- var end = new Date(date);
38
+ var end = new Date(date);
57
-
58
-
59
- end.setMonth(end.getMonth()+1);
39
+ end.setMonth(end.getMonth()+1);
60
-
61
- var events = calendar.getEvents(from, end);
40
+ var events = calendar.getEvents(from, end);
62
-
63
-
64
- for (var i = 0; i < events.length; i++) {
41
+ for (var i = 0; i < events.length; i++) {
65
- Logger.log('events要素' + i + '目');
42
+ Logger.log('events要素' + i + '目');
66
- var title = events[i].getTitle();
43
+ var title = events[i].getTitle();
67
- var startTime = events[i].getStartTime();
44
+ var startTime = events[i].getStartTime();
68
- var endTime = events[i].getEndTime();
45
+ var endTime = events[i].getEndTime();
69
- var duration = (endTime - startTime) /(1000*60)/(60);
46
+ var duration = (endTime - startTime) /(1000*60)/(60);
70
- var detail = events[i].getDescription();
47
+ var detail = events[i].getDescription();
71
- var location = events[i].getLocation();
48
+ var location = events[i].getLocation();
72
-
73
-
74
- calendarItem.getRange('A'+(lastR+1)).setValue(id);
49
+ calendarItem.getRange('A'+(lastR+1)).setValue(id);
75
- calendarItem.getRange('B'+(lastR+1)).setValue(title);
50
+ calendarItem.getRange('B'+(lastR+1)).setValue(title);
76
- calendarItem.getRange('C'+(lastR+1)).setValue(startTime).setNumberFormat('yyyy/mm/dd hh:mm');
51
+ calendarItem.getRange('C'+(lastR+1)).setValue(startTime).setNumberFormat('yyyy/mm/dd hh:mm');
77
- calendarItem.getRange('D'+(lastR+1)).setValue(endTime).setNumberFormat('yyyy/mm/dd hh:mm');
52
+ calendarItem.getRange('D'+(lastR+1)).setValue(endTime).setNumberFormat('yyyy/mm/dd hh:mm');
78
- calendarItem.getRange('E'+(lastR+1)).setValue(duration);
53
+ calendarItem.getRange('E'+(lastR+1)).setValue(duration);
79
- //calendarItem.getRange('E'+(lastR+1)).setValue(detail);
54
+ //calendarItem.getRange('E'+(lastR+1)).setValue(detail);
80
- calendarItem.getRange('G'+(lastR+1)).setValue(location);
55
+ calendarItem.getRange('G'+(lastR+1)).setValue(location);
81
- lastR = lastR + 1;
56
+ lastR = lastR + 1;
82
- }
57
+ }
83
- }
58
+ }
59
+ ```

1

DATEコードの変更、質問事項の変更

2019/11/14 07:16

投稿

KPS
KPS

スコア8

title CHANGED
File without changes
body CHANGED
@@ -2,13 +2,14 @@
2
2
 
3
3
  最終的にやりたい事は
4
4
  毎月の予定を自動更新
5
- カレンダーネーム事の就業時間計算
6
5
  就業時間が月178時間を超えたらグループラインに通知です。
7
6
 
8
7
  よろしくお願いいたします。
9
- ```ここに言語を入力
8
+ エラーが出ているのは一番上の所です。
10
- ドvar date = '2019/11/01';
9
+ その月の1日からカレンダを取得して次の月に入った時はクリアーにしたいのです。
11
10
 
11
+ var date = DATE(YEAR(TODAY()),MONTH(TODAY()),1);
12
+
12
13
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
13
14
 
14
15
  var calendarId = sheet.setActiveSheet(sheet.getSheetByName("Calendar_ID"));
@@ -17,17 +18,16 @@
17
18
 
18
19
 
19
20
  function getId(){
20
-
21
+
21
22
  calendarItem.clear();
22
-
23
+
23
24
  calendarItem.getRange('A'+(1)).setValue('カレンダーID');
24
25
  calendarItem.getRange('B'+(1)).setValue('タイトル');
25
26
  calendarItem.getRange('C'+(1)).setValue('開始時刻');
26
27
  calendarItem.getRange('D'+(1)).setValue('終了時刻');
27
28
  calendarItem.getRange('E'+(1)).setValue('所要時間');
28
- calendarItem.getRange('F'+(1)).setValue('詳細');
29
- calendarItem.getRange('G'+(1)).setValue('住所');
30
29
 
30
+
31
31
 
32
32
  var lastR1 = calendarId.getLastRow();
33
33
  Logger.log("【lastR】:" + lastR1);
@@ -38,7 +38,7 @@
38
38
  var lastR2 = calendarItem.getLastRow();
39
39
  Logger.log("【lastR】:" + lastR2);
40
40
 
41
-
41
+
42
42
  var calId = calendarId.getRange('A'+(i+1)).getValue();
43
43
  Logger.log('【calId】' + calId);
44
44
  getCal(calId,lastR2);
@@ -51,15 +51,16 @@
51
51
 
52
52
  var calendar = CalendarApp.getCalendarById(id);
53
53
 
54
-
54
+
55
55
  var from= new Date(date); 
56
56
  var end = new Date(date);
57
-
57
+
58
+
58
59
  end.setMonth(end.getMonth()+1);
59
-
60
+
60
61
  var events = calendar.getEvents(from, end);
61
62
 
62
-
63
+
63
64
  for (var i = 0; i < events.length; i++) {
64
65
  Logger.log('events要素' + i + '目');
65
66
  var title = events[i].getTitle();
@@ -69,7 +70,7 @@
69
70
  var detail = events[i].getDescription();
70
71
  var location = events[i].getLocation();
71
72
 
72
-
73
+
73
74
  calendarItem.getRange('A'+(lastR+1)).setValue(id);
74
75
  calendarItem.getRange('B'+(lastR+1)).setValue(title);
75
76
  calendarItem.getRange('C'+(lastR+1)).setValue(startTime).setNumberFormat('yyyy/mm/dd hh:mm');
@@ -79,6 +80,4 @@
79
80
  calendarItem.getRange('G'+(lastR+1)).setValue(location);
80
81
  lastR = lastR + 1;
81
82
  }
82
- }
83
+ }
83
-
84
- ****