質問編集履歴

1

コードを再度他のもので試してみたので更新しました。

2021/11/23 06:33

投稿

araki11
araki11

スコア4

test CHANGED
File without changes
test CHANGED
@@ -14,73 +14,49 @@
14
14
 
15
15
  <コード>
16
16
 
17
- function test() {
17
+ function sendNotification() {
18
18
 
19
- var ss = SpreadsheetApp.getActiveSpreadsheet();//スプレッドシートを取得
19
+ const ss = SpreadsheetApp.getActiveSpreadsheet();
20
20
 
21
- var sh=ss.getSheetByName("管理表");
21
+ const sheet = ss.getSheetByName("管理表");
22
22
 
23
- var rowSheet=sh.getDataRange().getLastRow();//使用している範囲の最終行を取得
23
+ const cell = ss.getActiveCell().getA1Notation();
24
24
 
25
- var myCell = sh.getActiveCell(); //アクティブセルを取得
26
-
27
-
28
-
29
- //○○の部分は完了とかのステータスが入る列番号
30
-
31
- if ( sh.getRange('A' + myCell.getRow()).getValue() !== '完了'){
25
+ const columnNameInAlphabet = cell.replace(/\d+/,'');
32
-
33
- return;
34
26
 
35
27
  }
36
28
 
37
29
 
38
30
 
39
- var Name=sh.getRange(myCell.getRow(),18).getValue();//名前
31
+ function mailsend(){
40
32
 
41
- var To={'○○':'○○@gmail.com'
42
-
43
- };//アドレス
44
-
45
- var Cc1="○○@gmail.com";//アシスタント
33
+ const to ="××@gmail.com"
46
34
 
47
35
 
48
36
 
37
+ //更新行のC列の値を取得
38
+
49
- var person = sh.getRange('R' + myCell.getRow()).getValue();
39
+ const person = sheet.getRange('C'+ sheet.getActiveCell().getRowIndex()).getValue();
40
+
41
+ //メールの件名と本文を指定
42
+
43
+ const subject = '【更新】'+ss.getName();
44
+
45
+ const body = person + 'の行が更新されました。\n' + ss.getUrl() + '\n更新対象は' + columnNameInAlphabet +'列です。';
50
46
 
51
47
 
52
48
 
53
- var Subject = '件名'; //
49
+ //更新された行が通知対象の行を含む場合はメールを送る
54
50
 
55
- var Body = '本文'; //
51
+ if (person in recipients == true){
56
52
 
53
+ MailApp.sendEmail(recipients[person], subject, body);
57
54
 
58
-
59
- if (person in To == true){
60
-
61
- MailApp.sendEmail(To[person],Subject, Body,{cc:Cc1});//メールを送信}
62
-
63
-
64
-
65
- }
55
+ }
66
56
 
67
57
  }
68
58
 
69
59
 
70
-
71
- [参考にしたURLリンク](https://teratail.com/questions/160617)
72
-
73
- 上記コードは、リンク先の内容に対してメールアドレスや参照する列などの情報を変えてみたりしました。特に、var Name=sh.getRange(myCell.getRow(),18).getValue();//名前
74
-
75
- ここの列の18などは何を指しているのかわからずどのように変更しようか悩んでおりました。
76
-
77
-
78
-
79
-
80
-
81
- →とても初心者のような質問で大変申し訳ありませんが...
82
-
83
- 現在スプレッドシートのGASでは①と②でファイルを分けて作成していますが、一つにファイル上に記載しても問題ないと認識しています。その場合、コード記載の際には冒頭に記載した実現したいことの①の内容と②の内容どっちが上の方が好ましいとかもしあったら教えていただけると幸いです。
84
60
 
85
61
 
86
62