質問編集履歴

4

画像の修正

2023/02/09 05:39

投稿

Na7Na7
Na7Na7

スコア1

test CHANGED
File without changes
test CHANGED
@@ -59,4 +59,4 @@
59
59
  検索列は質問投稿時はB列(数式)でしたが、今はI列(値のみ貼り付け)を指定しています。
60
60
  数式が原因ではないと問題を分けたいからです。
61
61
  毎日自動的にB列をJ列に値のみ貼り付けするスクリプトを組みました。
62
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-02-09/a1f7add8-da83-4b67-94a8-7e95b8d538f0.jpeg)
62
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-02-09/db5e8bd2-ae49-4822-8b06-f2f3d5c10506.jpeg)

3

誤字修正

2023/02/09 05:29

投稿

Na7Na7
Na7Na7

スコア1

test CHANGED
File without changes
test CHANGED
@@ -26,8 +26,8 @@
26
26
  const subject = '3営業日前です';//通知タイトル
27
27
  const body = + '※本メールは●●のリマインド通知です※\n';
28
28
  const options = { name: '通知' };
29
- const activeSpreadSheet = SpreadsheetApp.openById('シートのIDを入力');// 現在のSpreadSheetを取得
29
+ const ss= SpreadsheetApp.openById('シートのIDを入力');// 現在のSpreadSheetを取得
30
- const mySheet = activeSpreadSheet.getSheetByName('シート名を入力'); // シート(SpreadSheetの下のタブ名を指定)
30
+ const mySheet = ss.getSheetByName('シート名を入力'); // シート(SpreadSheetの下のタブ名を指定)
31
31
 
32
32
  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート名を入力").activate();
33
33
  var myCell = mySheet.getRange("I:I"); //

2

質問者に依頼されたスプレッドシートの写真添付

2023/02/09 04:59

投稿

Na7Na7
Na7Na7

スコア1

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
  ※追記:アクティブについて知識が無かったため、おかしなスクリプトになっています※
9
9
 
10
10
  「スプレッドシート上での表示が"残り●営業日"になったらメール通知」を行いたいため、
11
- ="残り"&NETWORKDAYS($H$1,F2)&"営業日"
11
+ ="残り"&NETWORKDAYS($H$1,G2)&"営業日"
12
12
  でH1(TODAY)とF2(予定日)を引っ張って「残り●営業日」と表示されるようにしています。
13
13
  (実際には祝日も計算に入れたかったため、隣のシートから2年分の祝日も引っ張ってきています。)
14
14
 
@@ -17,7 +17,7 @@
17
17
  ですが実行を行った場合でもメールが来ません。
18
18
  毎日朝7時~8時に設定したトリガーもエラーなく実行履歴がありますが動きません。
19
19
 
20
- ### 該当のソースコード
20
+ ### 該当のソースコード(修正版)
21
21
 
22
22
  ```GoogleAppSscript
23
23
  function NotificationMail(){
@@ -28,8 +28,10 @@
28
28
  const options = { name: '通知' };
29
29
  const activeSpreadSheet = SpreadsheetApp.openById('シートのIDを入力');// 現在のSpreadSheetを取得
30
30
  const mySheet = activeSpreadSheet.getSheetByName('シート名を入力'); // シート(SpreadSheetの下のタブ名を指定)
31
+
32
+ SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート名を入力").activate();
31
- const myCell = mySheet.getActiveCell(); //アクティブセルを取得
33
+ var myCell = mySheet.getRange("I:I"); //
32
- if(myCell.getColumn()==2 && myCell.getDisplayValue()=='残り3営業日'){ //B列に入力があったか判定
34
+ if(myCell.getValue()=='残り3営業日'){ //B列に入力があったか判定
33
35
 
34
36
  GmailApp.sendEmail(recipient, subject, body, options);//通知メールを送信
35
37
  }
@@ -52,3 +54,9 @@
52
54
  数式を組んだ場合はうまくいかないものなのでしょうか。
53
55
 
54
56
  どなたかお知恵を貸して頂ければ幸いです。
57
+
58
+ ●読み取りたいスプレッドシートのイメージ図です
59
+ 検索列は質問投稿時はB列(数式)でしたが、今はI列(値のみ貼り付け)を指定しています。
60
+ 数式が原因ではないと問題を分けたいからです。
61
+ 毎日自動的にB列をJ列に値のみ貼り付けするスクリプトを組みました。
62
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-02-09/a1f7add8-da83-4b67-94a8-7e95b8d538f0.jpeg)

1

アクティブについて知識がなかったことを追記

2023/02/03 03:00

投稿

Na7Na7
Na7Na7

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,12 @@
1
1
  ### 実現したいこと
2
2
  Googleスプレッドシートで、
3
3
  特定の列に特定の文字列が入力されていたらトリガーでメール通知したい。
4
-
4
+ (特定のセルに文字入力ではないです)
5
5
 
6
6
  ### 前提
7
7
  右のURL(https://teratail.com/questions/cbm7rb5o15ar9r )を参考に組みました。
8
+ ※追記:アクティブについて知識が無かったため、おかしなスクリプトになっています※
9
+
8
10
  「スプレッドシート上での表示が"残り●営業日"になったらメール通知」を行いたいため、
9
11
  ="残り"&NETWORKDAYS($H$1,F2)&"営業日"
10
12
  でH1(TODAY)とF2(予定日)を引っ張って「残り●営業日」と表示されるようにしています。