回答編集履歴

2

試行結果の画像を添付

2024/04/24 02:09

投稿

atlanticSalmon
atlanticSalmon

スコア39

test CHANGED
@@ -52,6 +52,9 @@
52
52
  }
53
53
  ```
54
54
 
55
+ ### セルを編集したときの通知の画像
56
+
57
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2024-04-24/afa3b0c6-7ad3-4b11-ab78-bbe2f6e4a726.png)
55
58
 
56
59
 
57
60
 

1

エラー発生を回避するコードとシートの指定を加えた。

2024/04/24 01:20

投稿

atlanticSalmon
atlanticSalmon

スコア39

test CHANGED
@@ -1,8 +1,4 @@
1
- 実現したいことがよくわからないです。
2
-
3
- A3:AとB3:Bの書き込み内容を通知したいと書いてありますが、
4
- 全て値を書き込むことをご希望でしょうか。
1
+ 特定シート特定の二つの列に書き込みがあったら、
5
-
6
2
  書き込みがあった行のA列のセルとB列のセルの値をGoogleChatに通知するのであれば、
7
3
  次のようなコードを書けると思います。
8
4
 
@@ -13,14 +9,20 @@
13
9
  * 編集されたセルを取得できないのでエラーになります。
14
10
  */
15
11
  function sheetToGoogleChat(e) {
12
+ if(!e) {
13
+ console.log('このスクリプトは、セルが編集された時に起動するようにトリガーを設定するものです\nエディタからは実行できませんのでトリガーの設定後にセルを編集してください');
14
+ return;
15
+ }
16
- // スプレッドシートの指定の二つの列に値が入力されたか確認
16
+ // シート名と二つの列を指定
17
+ const sheetName = '手上げ'; // 確認するシート名
17
18
  const column1 = 1; // A列
18
19
  const column2 = 2; // B列
19
20
 
20
- // 編集されたセルを取得し対象の列か確認
21
+ // 編集されたセル対象のシートなら対象の列か確認
21
22
  const range = e.range;
23
+ const sheet = range.getSheet();
22
24
  const column = range.getColumn();
23
- if ([column1, column2].includes(column)) {
25
+ if (sheet.getName() === sheetName && [column1, column2].includes(column)) {
24
26
  // 両方の列のセルに表示されている文字列を取得して確認
25
27
  const value1 = range.offset(0, column1 - column).getDisplayValue();
26
28
  const value2 = range.offset(0, column2 - column).getDisplayValue();
@@ -31,7 +33,6 @@
31
33
  }
32
34
  }
33
35
  }
34
-
35
36
 
36
37
  /* Google Chat */
37
38
  function notifyGoogleChat(value1, value2) {