質問編集履歴

1

どのようにしてよいかわからず、ボタンではなく値が入ると送信という形にしたいと思います。

2021/07/17 05:20

投稿

Yuppon
Yuppon

スコア5

test CHANGED
File without changes
test CHANGED
@@ -1,83 +1,75 @@
1
- スプレッドシー以下のようなシートを作成ております。
1
+ *コメンいただき、良い方法が見つからず以下のように変更します。
2
-
3
- 新人が質問を入力し、送信ボタンを押すと上司のメールに通知を送りたいと思っております。
4
2
 
5
3
 
6
4
 
5
+ スプレッドシートで以下のようなシートを作成しております。
6
+
7
+ A列の新人が質問を入力し、C列に値(担当の上司)が入るとその担当の上司に通知を送るような仕組みを作りたいです。
7
8
 
8
9
 
10
+
9
- |A|B|C|D|
11
+ |A|B|C|
10
12
 
11
13
  |:--|:--:|--:|
12
14
 
13
- |新人|質問|上司||
15
+ |新人(プルダウン)|質問|上司(Aを入力することにより自動入力)||
14
16
 
15
- |井上|XXXX|田中|送信するボタン|
17
+ |井上|XXXX|田中|
16
18
 
17
- |寺田|XXXX|山田|送信するボタン|
19
+ |寺田|XXXX|山田|
18
20
 
19
21
 
20
22
 
23
+ C列に値が入ったら、その方に自動で通知メールを送りたいのですが、Google App Scriptでそのようなことは可能でしょうか。
24
+
25
+ referenceなどを見ながら以下やってみたのですが、更新をしても動きません。トリガーは編集時に設定しております。
21
26
 
22
27
 
23
28
 
29
+ ```ここに言語を入力
24
30
 
25
- 上司氏名
31
+ function onEdit(e) {
26
32
 
27
- |L|M|-|
33
+ var sheet = SpreadsheetApp.openById('xxxxx');
28
34
 
29
- |:--|:--:|--:|
30
-
31
- |田中|tanaka@xxx.com|
32
-
33
- |山田|yamada@xxx.com|
35
+ var add = sheet.getSheetByName('xx');
34
-
35
- |XXX|XXXXX@xxx.com|
36
-
37
- |XXX|XXXXX@xxx.com|
38
-
39
- |XXX|XXXXX@xxx.com|
40
36
 
41
37
 
42
38
 
39
+ //上司の名前を拾う
40
+
41
+ if(e.range.getColumn() === 3 ) {
43
42
 
44
43
 
45
- GAS
46
44
 
47
- ```ここに言語を入力
45
+ //通知対象者のメールアドレス
48
46
 
49
- function sendEmail() {
47
+ const recipients = {
50
48
 
51
- var sheet = SpreadsheetApp.openById('XXXXX');
49
+ '田中': 'zzzzz@gmail.com',
52
50
 
53
- var add = sheet.getSheetByName('XX').getRange(2,13).getValue(); //**M列田中さんのアドレス**
51
+ '山田': 'xxxxx@gmail.com',
54
52
 
55
- var popUp = Browser.msgBox("送信確認", add + "さんへ送信しますか?", Browser.Buttons.OK_CANCEL);
53
+ '太田': 'aaaaa@gmail.com',
56
54
 
57
- if (popUp == 'ok') {
55
+ '井上': 'bbbbb@gmail.com'
58
56
 
59
- var mailSubject = ("質問がありました。");
57
+ };
60
58
 
61
- var mailBody = ("回答をお願いいたします。https://docs.google.com/spreadsheets/XXXXXX")
59
+ //メールの件名、本文
62
60
 
63
- GmailApp.sendEmail(add, mailSubject, mailBody);
61
+ var mailSubject = ("質問がありました。");
64
62
 
65
- Browser.msgBox("送信しました");
63
+ var mailBody = ("お時間のある時に回答をお願いいたします。")
66
64
 
67
- } else {
65
+
68
66
 
69
- Browser.msgBox("キャンセルしました");
67
+ MailApp.sendEmail(recipients[e.value], mailsubject, mailbody);
70
68
 
71
- }
69
+ }}
72
-
73
- }
74
70
 
75
71
  ```
76
72
 
77
73
 
78
74
 
79
- 現在は、M列田中さんのアドレスに通知がいくようになっていますが、担当が田中さんなら田中さん、山田さんなら山田さんへ送信するようにしたいのですが、そういったことは可能でしょうか?
80
-
81
-
82
-
83
- 取得と紐付け方法がいまいちよくわからず、有識者の方ご教示いただきたくお願いいたします。
75
+ 有識者の方ご教示いただきたくお願いいたします。