質問編集履歴

5

ソースコードをMarkdown記法に修正致しました。作法もわからず申し訳ありません。宜しくお願い致します。

2018/06/27 00:59

投稿

FrontChan
FrontChan

スコア18

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,8 @@
5
5
  という内容のものを作成しています。
6
6
 
7
7
 
8
+
9
+ ```GoogleAppScript
8
10
 
9
11
  function sendToCalendar(e) {
10
12
 
@@ -134,7 +136,7 @@
134
136
 
135
137
  }
136
138
 
137
-
139
+ ```
138
140
 
139
141
 
140
142
 

4

情報の不足があるという事で、追記致します。

2018/06/27 00:59

投稿

FrontChan
FrontChan

スコア18

test CHANGED
File without changes
test CHANGED
@@ -6,17 +6,135 @@
6
6
 
7
7
 
8
8
 
9
+ function sendToCalendar(e) {
10
+
11
+ try{
12
+
13
+ //有効なGoogleスプレッドシート
14
+
9
- var myCals = CalendarApp.getCalendarById("カレンダーのID");
15
+ var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
10
16
 
11
17
 
12
18
 
13
- var ndates = "イベント開始時刻";
19
+ //新規登録された行番号を取得
14
20
 
15
- var ndatee = "イベント終了時刻";
21
+ var num_row = sheet.getLastRow();
16
22
 
17
23
 
18
24
 
25
+ //新規登録された行から名前を取得
26
+
27
+ var nname = sheet.getRange(num_row, *).getValue();
28
+
29
+
30
+
31
+ //新規登録された行から予約された部屋名を取得
32
+
33
+ var rname = sheet.getRange(num_row, *).getValue();
34
+
35
+
36
+
37
+ //新規登録された内容から参加メンバーを取得
38
+
39
+ var member = sheet.getRange(num_row, *).getValue();
40
+
41
+
42
+
43
+ //メールアドレスの取得
44
+
45
+ var nmail = sheet.getRange(num_row, *).getValue();
46
+
47
+
48
+
49
+ //予約を記載するカレンダーを取得
50
+
51
+ var cals = CalendarApp.getCalendarById("カレンダーのID");
52
+
53
+
54
+
55
+ //開始時間を取得
56
+
57
+ var stime = new Date(sheet.getRange(num_row, *).getValue());
58
+
59
+
60
+
61
+ //終了時間を取得
62
+
63
+ var etime = new Date(sheet.getRange(num_row, *).getValue());
64
+
65
+
66
+
67
+ //用途を取得
68
+
69
+ var youto = sheet.getRange(num_row, *).getValue();
70
+
71
+ //お客様
72
+
73
+ var guest = sheet.getRange(num_row, *).getValue();
74
+
75
+ //予約日
76
+
77
+ var ndate = new Date(sheet.getRange(num_row, *).getValue());
78
+
79
+ //開始時間
80
+
81
+ var ndates= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),stime.getHours(),stime.getMinutes(),0);
82
+
83
+ //終了時間
84
+
85
+ var ndatee= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),etime.getHours(),etime.getMinutes(),0);
86
+
87
+
88
+
89
+ // 先約の有無
90
+
19
- if(myCals.getEvents(ndates, ndatee)==0){}
91
+ if(cals.getEvents(ndates, ndatee)==0){
92
+
93
+
94
+
95
+ var thing = youto;
96
+
97
+ var descriptionBody = "【予約施設】:" + rname + "\n【参加対象】:" + member + "\n【お客様】:" + guest;
98
+
99
+
100
+
101
+ var r = cals.createEvent(
102
+
103
+ thing,
104
+
105
+ ndates,
106
+
107
+ ndatee,
108
+
109
+ {
110
+
111
+ description:descriptionBody
112
+
113
+ }
114
+
115
+ );
116
+
117
+ var thing =nname+"様 \n\n 予定を登録致しました。"
118
+
119
+ MailApp.sendEmail(nmail,"応接室・会議室予約",thing);
120
+
121
+ }else{
122
+
123
+ var thing =nname+"\n\n ご登録の時間に先約がありました。\n 申し訳ございません。登録いただけませんでした。\n\n ご予定を変更して再度お申込みください"
124
+
125
+ MailApp.sendEmail(nmail,"ご登録できませんでした",thing);
126
+
127
+ }
128
+
129
+ } catch(exp){
130
+
131
+ MailApp.sendEmail(nmail, exp.message, exp.message);
132
+
133
+ }
134
+
135
+ }
136
+
137
+
20
138
 
21
139
 
22
140
 

3

情報に不足があるとのことなので、追記致しました。

2018/06/26 05:14

投稿

FrontChan
FrontChan

スコア18

test CHANGED
File without changes
test CHANGED
File without changes

2

申し訳ありません。不足部分、まだありましたので、追記致しました。

2018/06/26 05:13

投稿

FrontChan
FrontChan

スコア18

test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,13 @@
10
10
 
11
11
 
12
12
 
13
+ var ndates = "イベント開始時刻";
14
+
15
+ var ndatee = "イベント終了時刻";
16
+
17
+
18
+
13
- if(cals.getEvents(ndates, ndatee)==0){}
19
+ if(myCals.getEvents(ndates, ndatee)==0){}
14
20
 
15
21
 
16
22
 

1

変数 calsに対しての説明が無く不明点が多いと思いましたので、追記編集致しました。

2018/06/26 02:45

投稿

FrontChan
FrontChan

スコア18

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,10 @@
3
3
  GoogleAppScriptにて特定のイベントの位置情報を取得して同じ文字列が入っていたら登録させない。無ければ登録する。
4
4
 
5
5
  という内容のものを作成しています。
6
+
7
+
8
+
9
+ var myCals = CalendarApp.getCalendarById("カレンダーのID");
6
10
 
7
11
 
8
12