質問編集履歴
3
設定時間超のコード追加
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
コードの修正をしました。
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
|
-
|
17
|
+
calendarItem.clear();
|
23
|
-
|
24
|
-
|
18
|
+
calendarItem.getRange('A'+(1)).setValue('カレンダーID');
|
25
|
-
|
19
|
+
calendarItem.getRange('B'+(1)).setValue('タイトル');
|
26
|
-
|
20
|
+
calendarItem.getRange('C'+(1)).setValue('開始時刻');
|
27
|
-
|
21
|
+
calendarItem.getRange('D'+(1)).setValue('終了時刻');
|
28
|
-
|
22
|
+
calendarItem.getRange('E'+(1)).setValue('所要時間');
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
23
|
+
var lastR1 = calendarId.getLastRow();
|
33
|
-
|
24
|
+
Logger.log("【lastR】:" + lastR1);
|
34
|
-
|
35
|
-
|
36
|
-
|
25
|
+
for (var i = 1; i < lastR1 ; i++){
|
37
|
-
|
38
|
-
|
26
|
+
var lastR2 = calendarItem.getLastRow();
|
39
|
-
|
27
|
+
Logger.log("【lastR】:" + lastR2);
|
40
|
-
|
41
|
-
|
42
|
-
|
28
|
+
var calId = calendarId.getRange('A'+(i+1)).getValue();
|
43
|
-
|
29
|
+
Logger.log('【calId】' + calId);
|
44
|
-
|
30
|
+
getCal(calId,lastR2);
|
45
|
-
}
|
46
31
|
}
|
47
|
-
|
32
|
+
}
|
48
33
|
function getCal(id,lastR) {
|
49
|
-
|
34
|
+
Logger.log('【id】' + id);
|
50
|
-
|
35
|
+
Logger.log('【lastR】' + lastR);
|
51
|
-
|
52
|
-
|
36
|
+
var calendar = CalendarApp.getCalendarById(id);
|
53
|
-
|
54
|
-
|
55
|
-
|
37
|
+
var from= new Date(date);
|
56
|
-
|
38
|
+
var end = new Date(date);
|
57
|
-
|
58
|
-
|
59
|
-
|
39
|
+
end.setMonth(end.getMonth()+1);
|
60
|
-
|
61
|
-
|
40
|
+
var events = calendar.getEvents(from, end);
|
62
|
-
|
63
|
-
|
64
|
-
|
41
|
+
for (var i = 0; i < events.length; i++) {
|
65
|
-
|
42
|
+
Logger.log('events要素' + i + '目');
|
66
|
-
|
43
|
+
var title = events[i].getTitle();
|
67
|
-
|
44
|
+
var startTime = events[i].getStartTime();
|
68
|
-
|
45
|
+
var endTime = events[i].getEndTime();
|
69
|
-
|
46
|
+
var duration = (endTime - startTime) /(1000*60)/(60);
|
70
|
-
|
47
|
+
var detail = events[i].getDescription();
|
71
|
-
|
48
|
+
var location = events[i].getLocation();
|
72
|
-
|
73
|
-
|
74
|
-
|
49
|
+
calendarItem.getRange('A'+(lastR+1)).setValue(id);
|
75
|
-
|
50
|
+
calendarItem.getRange('B'+(lastR+1)).setValue(title);
|
76
|
-
|
51
|
+
calendarItem.getRange('C'+(lastR+1)).setValue(startTime).setNumberFormat('yyyy/mm/dd hh:mm');
|
77
|
-
|
52
|
+
calendarItem.getRange('D'+(lastR+1)).setValue(endTime).setNumberFormat('yyyy/mm/dd hh:mm');
|
78
|
-
|
53
|
+
calendarItem.getRange('E'+(lastR+1)).setValue(duration);
|
79
|
-
|
54
|
+
//calendarItem.getRange('E'+(lastR+1)).setValue(detail);
|
80
|
-
|
55
|
+
calendarItem.getRange('G'+(lastR+1)).setValue(location);
|
81
|
-
|
56
|
+
lastR = lastR + 1;
|
82
|
-
|
57
|
+
}
|
83
|
-
}
|
58
|
+
}
|
59
|
+
```
|
1
DATEコードの変更、質問事項の変更
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
|
-
|
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
|
-
****
|