質問編集履歴

1

コード一部抜粋から全文記載に変更しました。

2022/04/28 01:54

投稿

bin.
bin.

スコア2

test CHANGED
File without changes
test CHANGED
@@ -2,11 +2,33 @@
2
2
 
3
3
  2.値がセットされない ログに”Range”と表示される
4
4
 
5
+ ```コードこちらです
6
+
7
+ //カレンダーから予定を取得し日報作成 ※土日、祝日一覧のぞいて作成
8
+
9
+ function daily_mail2() {
10
+
11
+ var ss = SpreadsheetApp.getActiveSpreadsheet();
12
+ var sheet = ss.getSheetByName("日報FMT");
13
+
14
+ //toの取得
15
+ var range = sheet.getRange("C2");
16
+ var to = range.getValue();
17
+
18
+ //ccの取得
19
+ var range = sheet.getRange("C3");
20
+ var cc = range.getValue();
21
+
22
+ //subjectの取得
23
+ var range = sheet.getRange("C4");
24
+ var subject = range.getValue();
25
+
26
+
5
- ```コードこちらです//当日すべてのイベントが格納されてる箱
27
+ //当日すべてのイベントが格納されてる箱
6
28
  var values = [time,title]; 
7
29
 
8
30
   //イベントの取得
9
-  var calendar = CalendarApp.getCalendarById("かれんだーID");
31
+  var calendar = CalendarApp.getCalendarById("カレンダーID");
10
32
   var date = new Date();
11
33
   var events = calendar.getEventsForDay(date);
12
34
   var length = events.length;
@@ -14,25 +36,55 @@
14
36
   //繰り返し処理
15
37
   for (var i=1 ; i<length ; ++i){
16
38
   
17
-   var event = events[i];      //eventsから配列を取り出す
39
+   var event = events[i];      
18
-   var title = event.getTitle(); //eventのタイトルを取得 
40
+   var title = event.getTitle(); 
41
+  
19
42
 
20
43
    var start = event.getStartTime();                 //eventのスタート時間の取得
21
-   start = Utilities.formatDate(start,"Asia/Tokyo","HH:mm"); //Utilities.formatDate(変換したい日付, “タイムゾーン”, “変換形式”) 文字列に変換してくれる
44
+   start = Utilities.formatDate(start,"Asia/Tokyo","HH:mm"); 
22
45
    var end = event.getEndTime();                  //eventのエンド時間の取得
23
46
    end = Utilities.formatDate(end,"Asia/Tokyo","HH:mm");
24
-   var time = `${start} - ${end}`                //timeに表示形式"00:00 - 00:00"で時間の格納
47
+   var time = `${start} - ${end}`                
25
48
 
26
49
     values.push(time,title) //valuesに取得したデータを格納
27
50
    }
28
51
 
52
+
29
53
     Logger.log(values);
30
54
 
55
+
31
56
  //イベントをスプレッドシートにセット   ここがおかしい?セットされない
32
- var ss = SpreadsheetApp.getActiveSpreadsheet();
33
- var sheet = ss.getSheetByName("日報FMT");
34
57
  var daily = sheet.getRange("C5");
35
58
  var titles = daily.setValue(values);
36
59
 
37
60
     Logger.log(titles);
61
+
62
+ //bodyの取得
63
+ var range = sheet.getRange("C6");
64
+ var body = range.getValue();
65
+
66
+
67
+ //optionsの指定
68
+ options = {
69
+
70
+ cc:cc
71
+ }
72
+
73
+ //曜日の取得
74
+ var day = date.getDay();
75
+
76
+
77
+ //祝日の取得
78
+ var ss = SpreadsheetApp.getActiveSpreadsheet();
79
+ var holidaysheet = ss.getSheetByName("祝日一覧");
80
+ var holiday = holidaysheet.getDataRange().getValues().slice(1);
81
+                                       
82
+
83
+ //今日が土日祝日じゃなかった場合、メールの下書き作成 たぶんここもおかしい
84
+ if (day != 0, day != 6, holiday != holiday) {
85
+ GmailApp.createDraft(to,subject,body,options);
86
+ }else{
87
+ return;
88
+ }
89
+ }
38
90
  ```