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

質問編集履歴

5

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

2018/06/27 00:59

投稿

FrontChan
FrontChan

スコア18

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,7 @@
2
2
  GoogleAppScriptにて特定のイベントの位置情報を取得して同じ文字列が入っていたら登録させない。無ければ登録する。
3
3
  という内容のものを作成しています。
4
4
 
5
+ ```GoogleAppScript
5
6
  function sendToCalendar(e) {
6
7
  try{
7
8
  //有効なGoogleスプレッドシート
@@ -66,8 +67,8 @@
66
67
  MailApp.sendEmail(nmail, exp.message, exp.message);
67
68
  }
68
69
  }
70
+ ```
69
71
 
70
-
71
72
  という記述でイベント情報を取得出来て、getLocationでイベントの場所情報を取得出来るところまでは調べてわかったのですが、
72
73
  イベントの場所もとなるとgetLocationが見つかりませんとなってしまいます。
73
74
 

4

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

2018/06/27 00:59

投稿

FrontChan
FrontChan

スコア18

title CHANGED
File without changes
body CHANGED
@@ -2,13 +2,72 @@
2
2
  GoogleAppScriptにて特定のイベントの位置情報を取得して同じ文字列が入っていたら登録させない。無ければ登録する。
3
3
  という内容のものを作成しています。
4
4
 
5
+ function sendToCalendar(e) {
6
+ try{
7
+ //有効なGoogleスプレッドシート
5
- var myCals = CalendarApp.getCalendarById("カレンダーのID");
8
+ var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
6
9
 
10
+ //新規登録された行番号を取得
7
- var ndates = "イベント開始時刻";
11
+ var num_row = sheet.getLastRow();
8
- var ndatee = "イベント終了時刻";
9
12
 
13
+ //新規登録された行から名前を取得
10
- if(myCals.getEvents(ndates, ndatee)==0){}
14
+ var nname = sheet.getRange(num_row, *).getValue();
11
15
 
16
+ //新規登録された行から予約された部屋名を取得
17
+ var rname = sheet.getRange(num_row, *).getValue();
18
+
19
+ //新規登録された内容から参加メンバーを取得
20
+ var member = sheet.getRange(num_row, *).getValue();
21
+
22
+ //メールアドレスの取得
23
+ var nmail = sheet.getRange(num_row, *).getValue();
24
+
25
+ //予約を記載するカレンダーを取得
26
+ var cals = CalendarApp.getCalendarById("カレンダーのID");
27
+
28
+ //開始時間を取得
29
+ var stime = new Date(sheet.getRange(num_row, *).getValue());
30
+
31
+ //終了時間を取得
32
+ var etime = new Date(sheet.getRange(num_row, *).getValue());
33
+
34
+ //用途を取得
35
+ var youto = sheet.getRange(num_row, *).getValue();
36
+ //お客様
37
+ var guest = sheet.getRange(num_row, *).getValue();
38
+ //予約日
39
+ var ndate = new Date(sheet.getRange(num_row, *).getValue());
40
+ //開始時間
41
+ var ndates= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),stime.getHours(),stime.getMinutes(),0);
42
+ //終了時間
43
+ var ndatee= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),etime.getHours(),etime.getMinutes(),0);
44
+
45
+ // 先約の有無
46
+ if(cals.getEvents(ndates, ndatee)==0){
47
+
48
+ var thing = youto;
49
+ var descriptionBody = "【予約施設】:" + rname + "\n【参加対象】:" + member + "\n【お客様】:" + guest;
50
+
51
+ var r = cals.createEvent(
52
+ thing,
53
+ ndates,
54
+ ndatee,
55
+ {
56
+ description:descriptionBody
57
+ }
58
+ );
59
+ var thing =nname+"様 \n\n 予定を登録致しました。"
60
+ MailApp.sendEmail(nmail,"応接室・会議室予約",thing);
61
+ }else{
62
+ var thing =nname+"\n\n ご登録の時間に先約がありました。\n 申し訳ございません。登録いただけませんでした。\n\n ご予定を変更して再度お申込みください"
63
+ MailApp.sendEmail(nmail,"ご登録できませんでした",thing);
64
+ }
65
+ } catch(exp){
66
+ MailApp.sendEmail(nmail, exp.message, exp.message);
67
+ }
68
+ }
69
+
70
+
12
71
  という記述でイベント情報を取得出来て、getLocationでイベントの場所情報を取得出来るところまでは調べてわかったのですが、
13
72
  イベントの場所もとなるとgetLocationが見つかりませんとなってしまいます。
14
73
 

3

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

2018/06/26 05:14

投稿

FrontChan
FrontChan

スコア18

title CHANGED
File without changes
body CHANGED
File without changes

2

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

2018/06/26 05:13

投稿

FrontChan
FrontChan

スコア18

title CHANGED
File without changes
body CHANGED
@@ -4,8 +4,11 @@
4
4
 
5
5
  var myCals = CalendarApp.getCalendarById("カレンダーのID");
6
6
 
7
+ var ndates = "イベント開始時刻";
7
- if(cals.getEvents(ndates, ndatee)==0){}
8
+ var ndatee = "イベント終了時刻";
8
9
 
10
+ if(myCals.getEvents(ndates, ndatee)==0){}
11
+
9
12
  という記述でイベント情報を取得出来て、getLocationでイベントの場所情報を取得出来るところまでは調べてわかったのですが、
10
13
  イベントの場所もとなるとgetLocationが見つかりませんとなってしまいます。
11
14
 

1

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

2018/06/26 02:45

投稿

FrontChan
FrontChan

スコア18

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,8 @@
2
2
  GoogleAppScriptにて特定のイベントの位置情報を取得して同じ文字列が入っていたら登録させない。無ければ登録する。
3
3
  という内容のものを作成しています。
4
4
 
5
+ var myCals = CalendarApp.getCalendarById("カレンダーのID");
6
+
5
7
  if(cals.getEvents(ndates, ndatee)==0){}
6
8
 
7
9
  という記述でイベント情報を取得出来て、getLocationでイベントの場所情報を取得出来るところまでは調べてわかったのですが、