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

質問編集履歴

2

変更

2021/01/30 05:39

投稿

HYoshitaka
HYoshitaka

スコア14

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,17 @@
2
2
  可能でしたら空白の部分を詰めて表示させたいです。
3
3
  原因と解決策をご教示いただけますでしょうか。
4
4
  ```ここに言語を入力
5
+ function appendMenu(){
6
+ // メニューの追加
7
+ var menu = [
8
+ {name: '取得する', functionName: "getEvents"},
9
+ {name: '削除する', functionName: "removeRow"}
10
+
11
+ ];
12
+
13
+ SpreadsheetApp.getActiveSpreadsheet().addMenu("予定を取得", menu);
14
+ }
15
+
5
16
  function getEvents(){
6
17
  var calendar = CalendarApp.getCalendarById('ID');
7
18
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
@@ -12,23 +23,54 @@
12
23
  var from= new Date(date); 
13
24
  var end = new Date(date);
14
25
  end.setMonth(end.getMonth()+1);
26
+
15
27
  var events = calendar.getEvents(from, end);
28
+ var rowIndex = 0;
16
29
  for (var i = 0; i < events.length; i++) {
17
30
 
18
31
  var title = events[i].getTitle();
32
+
19
- var startTime = events[i].getStartTime();
33
+ var startTime = events[i].getStartTime();
20
- var endTime = events[i].getEndTime();
34
+ var endTime = events[i].getEndTime();
21
- var duration = (endTime - startTime) /(1000*60)/(60);
35
+ var duration = (endTime - startTime) /(1000*60)/(60);
22
- var detail = events[i].getDescription();
36
+ var detail = events[i].getDescription();
23
- var location = events[i].getLocation();
37
+ var location = events[i].getLocation();
38
+ if (statTime == ""){
24
- Logger.log(title);
39
+ continue;
25
- if(title == "条件1"||title =="条件2"||title=="条件3"){
26
- sheet.getRange('B'+(i+40)).setValue(startTime).setNumberFormat('YYYY/MM/dd');
27
- sheet.getRange('C'+(i+40)).setValue(duration);
28
40
  }
41
+ Logger.log(title);
42
+ Logger.log(startTime);
43
+ if(title == "条件1"||title =="条件2"||title=="条件3"){
44
+ sheet.getRange('B'+(rowIndex+40)).setValue(startTime).setNumberFormat('YYYY/MM/dd');
45
+ sheet.getRange('C'+(rowIndex+40)).setValue(duration);
46
+ rowIndex = rowIndex+1;
47
+ }
48
+ }
49
+
50
+ function removeRow() {
51
+ //アクティブシートを取得
52
+ var sheet=SpreadsheetApp.getActiveSheet();
53
+ sheet.getLastRow();
54
+
55
+ // 最終行までループで回す
56
+ for(var row = 1; row <= sheet.getLastRow(); row++) {
57
+ var cell = sheet.getRange(row, 1);
58
+ if(cell.isBlank()){
59
+ sheet.deleteRow(row);
60
+ row-=1;
61
+ }
62
+ }
29
63
  }
64
+
30
- }
65
+ }
66
+
31
67
  ```
32
68
 
33
69
  取得した結果
34
- ![イメージ説明](1fa312f2b8e41e71a5f645f8b10bf5e3.png)
70
+ ![イメージ説明](1fa312f2b8e41e71a5f645f8b10bf5e3.png)
71
+
72
+ if (statTime == ""){
73
+ continue;
74
+ をコメントアウトした場合
75
+ ※1/30から下に必要ないデータまで取ってきてしまう。
76
+ ![イメージ説明](83e8618ca14dd8b8da1d70887d4c349c.png)

1

訂正

2021/01/30 05:39

投稿

HYoshitaka
HYoshitaka

スコア14

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  原因と解決策をご教示いただけますでしょうか。
4
4
  ```ここに言語を入力
5
5
  function getEvents(){
6
- var calendar = CalendarApp.getCalendarById('takatantakatan@gmail.com');
6
+ var calendar = CalendarApp.getCalendarById('ID');
7
7
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
8
8
  var sheet = spreadsheet.getActiveSheet();
9
9
  var range = sheet.getRange("K3");